我使用重写条件将网站重定向到www。我的代码是:
RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]
我无法在互联网上找到我如何请求如果在url'.com'我需要它,因为该网站必须也是本地可访问的。
例如:我找到this,但我无法理解如何使用我的脚本实现它。
答案 0 :(得分:1)
当前RewriteCond
对www.
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.org
,www.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处理该规则。