我的 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
:)