我需要重定向所有传入的请求获取。例如:site.com?anystr
到site.com
我试过这样做
RedirectMatch /?(.*)$ site.com
但是它导致循环转发,我得到浏览器错误
答案 0 :(得分:2)
RedirectMatch
确实匹配域名后面和查询字符串之前的任何内容。正则表达式/?(.*)$
将匹配任何请求。
您需要使用mod_rewrite。在Apache的主配置文件中启用mod_rewrite并重启Apache。然后将以下内容添加到.htaccess文件中:
RewriteEngine on
RewriteCond %{QUERY_STRING} .+
RewriteRule ^ - [QSD,R,L]
在测试结果符合预期后,将[R]
标记更改为[R=301]
。
答案 1 :(得分:1)
我相信这是你想要的帽子:
RewriteEngine on
RewriteCond %{QUERY_STRING} .+
RewriteRule ^ /? [L,R=302]
即。任何带有查询字符串的URL都会重定向到root,并使用目标中的?
删除查询字符串。