如何.htaccess使用查询字符串重定向此URL?

时间:2011-05-01 17:51:10

标签: .htaccess mod-rewrite

在使用WordPress维护插件时,我最终得到了这个查询字符串URL,我现在需要在网站上线时重定向到root。

http://mydomain.com/maintenance/?req=http%3A%2F%mydomain.com%2F

什么会将该网址重定向到http://mydomain.com

我尝试过这两种方法:

Redirect 301 "http://mydomain.com/maintenance/?req=http://mydomain.com/" http://mydomain.com

Redirect 301 "http://mydomain.com/maintenance/?req=http%3A%2F%mydomain.com%2f" http://mydomain.com

2 个答案:

答案 0 :(得分:2)

将这些行放在.htaccess文件中:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{QUERY_STRING} req=http%3A%2F%2F(.+)%2F [OR] 
RewriteCond %{QUERY_STRING} req=http://([^&]+)(&|$) [NC]
RewriteRule ^maintenance/?$ http://%1? [L,R,NC,NE]

答案 1 :(得分:0)

Redirect仅适用于网址路径。您需要使用the real mod_rewrite来查看查询:

RewriteEngine on
RewriteCond %{QUERY_STRING} =req=http://example.com/
RewriteRule ^maintenance/$ /? [L,R=301]