301重定向所有获取请求

时间:2014-11-24 09:33:07

标签: apache .htaccess

我需要重定向所有传入的请求获取。例如:site.com?anystrsite.com

我试过这样做

RedirectMatch /?(.*)$ site.com

但是它导致循环转发,我得到浏览器错误

2 个答案:

答案 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,并使用目标中的?删除查询字符串。