首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将URL从一个查询字符串重定向到另一个查询字符串

将URL从一个查询字符串重定向到另一个查询字符串
EN

Stack Overflow用户
提问于 2021-09-20 16:09:43
回答 1查看 42关注 0票数 0

我花了很多时间试图找到这个问题的解决方案,并尝试了许多不同的方法,但到目前为止,我都没有尝试过任何方法。

我想将一个带有查询字符串的URL重定向到另一个包含该查询字符串的值的URL。

我想重定向:

https://example.com/component/search/?searchword=XXXXXXXXX&searchwordsugg=&option=com_search

https://example.com/advanced-search?search=XXXXXXXXX

EN

回答 1

Stack Overflow用户

发布于 2021-09-22 00:40:50

您可以使用根.htaccess文件顶部的mod_rewrite执行类似以下操作:

代码语言:javascript
复制
RewriteEngine On

RewriteCond %{QUERY_STRING} (?:^|&)searchword=([^&]*)
RewriteRule ^component/search/?$ /advanced-search?search=%1 [NE,R=302,L]

RewriteRule模式仅与URL-path匹配,这明显排除了查询字符串。为了匹配查询字符串,我们需要一个单独的条件来检查QUERY_STRING服务器变量。

%1是对前面CondPattern中第一个捕获组的反向引用,即。

正则表达式(?:^|&)searchword=([^&]*)匹配查询字符串中的任何位置的searchworld URL参数,而不仅仅是在开头(如您的示例所示)。这还允许URL参数的值为空。

NE标志是必需的,以防止捕获的URL值在响应中被双重编码。(因为QUERY_STRING服务器变量不是%解码的。)

L标志可防止在重写引擎的此过程中进行进一步处理。

参考资料:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69257674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档