重定向主页,但如果存在查询字符串则不重定向

重定向主页,但如果存在查询字符串则不重定向

我想重定向 Wordpress 网站的主页,但前提是原始 URL 上没有任何查询字符串。这有效:

RedirectMatch 307 ^/$ http://www.consumerenergyreport.com/ticker

...但会重定向查询的 URL。我试过:

RewriteCond ! %{QUERY_STRING}

...但这似乎不适用于 RedirectMatch,只适用于 RewriteRule(go fig)。

答案1

认为你必须使用 mod_rewrite

RewriteCond %{THE_REQUEST} ^GET\ /\ HTTP
RewriteRule / http://www.sod.com/ [R=307]

这也意味着它不会将 POST 请求重定向到主页。不确定这是否是您想要的。但我认为是的,因为它可能暗示参数,例如查询字符串。

如果你还想重定向 HEAD 请求

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /\ HTTP
RewriteRule / http://www.sod.com/ [R=307]

如果你不想使用,THE_REQEST那么你可以用两个条件来实现

RewriteCond %{REQUEST_URI} =/
RewriteCond %{QUERY_STRING} =""
RewriteRule / http://www.sod.com/ [R=307]

编辑:RedirectMatch 不是 mod_rewrite 的一部分。它是 mod_alias 的一部分,因此完全独立于任何重写条件。

相关内容