Apache 域重定向和重写查询字符串

Apache 域重定向和重写查询字符串

我的 Apache 服务器将以以下格式接收来自用户的传入请求: http://192.168.1.182/SEARCH=searchstring&URL=http://test.com/blahblahblah

我想将用户重定向到另一个域,但保留搜索字符串并将其添加到新 URL 的末尾。

例子: https://newdomain.com/#q=searchstring

做这个的最好方式是什么?

我阅读了有关使用 mod_rewrite 进行重定向和重新映射的 Apache 文档,并尝试了各种示例,但无法使任何东西正常工作。

答案1

就像这样(如果你的 URL 参数总是在 SEARCH 参数之后)

RewriteEngine On
RewriteCond %{QUERY_STRING} SEARCH=(.*?)&URL= [NC]
RewriteRule . https://newdomain.com/#q=%1 [R=301,L]

我添加了NC不区分大小写的标志,这样它就可以与SEARCH=和一起使用search=

如果您的 URL 参数可能不存在:

RewriteEngine On
RewriteCond %{QUERY_STRING} SEARCH=([^&]*) [NC]
RewriteRule .* https://newdomain.com/#q=%1 [R=301,L]

要启用.htaccess,您必须添加AllowOverride All到您的 web 文件夹,并启用 mod_rewrite(终端命令a2enmod rewrite:)

相关内容