.htaccess从非www重定向到www,但页面强制例外

时间:2013-03-06 18:11:05

标签: .htaccess redirect web

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

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

但是想要将特定页面的强制例外从www重定向到非www ...

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

2 个答案:

答案 0 :(得分: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]

我希望这可以帮到你

答案 1 :(得分: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]
相关问题