.htaccess中的“if request”?

时间:2014-11-26 21:39:39

标签: mod-rewrite

我使用重写条件将网站重定向到www。我的代码是:

RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]

我无法在互联网上找到我如何请求如果在url'.com'我需要它,因为该网站必须也是本地可访问的。

例如:我找到this,但我无法理解如何使用我的脚本实现它。

2 个答案:

答案 0 :(得分:1)

当前RewriteCondwww. website.com适用RewriteRule是否正确。为避免在localhost上工作时发生RewriteCond,您需要额外!^www\.example\.com$来检查主持人。

这是因为条件www.example.com任何匹配,但 localhost除外,其中包含# Only apply other conditions if not working on localhost RewriteCond %{HTTP_HOST} !localhost [NC] RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

example.com

如果您需要使用多个域(example.orgwww.example.com)并将每个域转换为www.example.org# If not on localhost RewriteCond %{HTTP_HOST} !localhost [NC] # and the domain does not begin www. RewriteCond %{HTTP_HOST} !^www\. # Redirect to apply the www. to HTTP_HOST RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] ,您可以使其更具动态性:< / p>

R=302

测试时请小心 - 您的浏览器可能会缓存旧的301重定向。您可能需要在测试期间将它们更改为R=301并清除浏览器缓存。当您满意时,将其更改回{{1}}。

答案 1 :(得分:0)

RewriteCond应该已经适用于您的情况,只有在条件匹配时才会处理下一条规则,因此不会为localhost处理该规则。