0

我正在尝试将所有访问者从非 www 重定向到 www,目前通过

RewriteEngine On
RewriteCond %{http_host} ^mysite.com
RewriteRule ^(.*) http://www.mysite.com/$1 [R=301,L]

但是希望将特定页面从 www 重定向到非 www 的强制异常...

RewriteRule ^/?$ exception.html [L]唯一的解决方案吗?

4

2 回答 2

1

好吧,如果您想阻止非 www 页面重定向,则必须在重定向之前设置重写规则。

选项 [L] 将阻止检查下一个规则。

RewriteEngine On 

RewriteCond %{http_host} ^mysite.com 
RewriteRule ^exception\.html$ exception.html [L]

RewriteCond %{http_host} ^mysite.com 
RewriteRule ^(.*) http://www.mysite.com/$1 [R=301,L]

我希望这对你有帮助

于 2013-03-06T18:17:02.083 回答
0

试试这个:

重定向 www.mysite.com/exception.html -> mysite.com/exception.html(可选)

如果您还想将 www.mysite.com/exception.html 重定向到 mysite.com/exception.html,请仅添加此 RewriteRule。

如果您只是希望 exception.html 成为将 mysite.com 重定向到 www.mysite.com 的例外,那么您不需要此规则。

# Redirects www.mysite.com/exception.html to mysite.com/exception.html
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteRule ^exception.html$ http://%1/exception.html [R]

重定向 mysite.com -> www.mysite.com

# Redirects mysite.com to www.mysite.com. We must add a condition to avoid an infinite redirect loop with exception.html
RewriteCond %{HTTP_HOST} ^(mysite\.com) 
RewriteCond %{REQUEST_URI} !^exception.html$
RewriteRule (.*) http://www.%1/$1 [R=301,L]
于 2013-03-06T18:28:51.827 回答