www 到非 www .htaccess 不起作用
Posted
技术标签:
【中文标题】www 到非 www .htaccess 不起作用【英文标题】:www to non-www .htaccess not working 【发布时间】:2014-07-24 00:42:48 【问题描述】:编辑:问题是域名是在 GoDaddy 购买的,但托管在 Endurance International Group(他们拥有 Hostgator 和其他一些小型网络主机)。 Endurance 默认没有激活 mod_rewrite,这就是它不起作用的原因。
我在 GoDaddy 上托管了该网站,现在一切正常。
我有一个网站,Google 正在为其 www 和非 www 版本编制索引。我只想要非www版本。这是我当前的 .htaccess 代码。底部单个文件的 301 重定向有效,但顶部的 www 到非 www 代码不起作用。
我做错了什么?
RewriteEngine On
RewriteBase /
RewriteCond % ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Redirect old file path to new file path
Redirect 301 /aboutcarytreeservice.html http://example.com/about.html
Redirect 301 /carytreeservice.html http://example.com/services.html
Redirect 301 /treeremovaldurhamnc.html http://example.com/durham.html
Redirect 301 /treeservicedurhamnc.html http://example.com/durham.html
Redirect 301 /treeremovalraleighnc.html http://example.com/
【问题讨论】:
【参考方案1】:这个条件是错误的:
RewriteCond % ^www.example.com [NC]
改成:
RewriteCond %HTTP_HOST ^www\.example\.com$ [NC]
【讨论】:
注释掉所有Redirect 301
行并在不同的浏览器中重新测试。【参考方案2】:
试试这个:
RewriteEngine On
RewriteCond %HTTP_HOST !^www\.
RewriteRule ^(.*)$ http://www.%HTTP_HOST/$1 [R=301,L]
它将查看 URL 中是否有“www”,如果没有,则会导致 301 重定向到相同的 URL(添加“www”)。
【讨论】:
您确定在服务器上启用了 mod_rewrite 吗?请检查一下。 嗨 @user2036972,这是在 GoDaddy 上的 Linux 服务器上,默认情况下启用了 mod_rewrite。我要去那里进行三次检查,但我有 99.9% 的把握确定这不是问题。以上是关于www 到非 www .htaccess 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 使用 SSL/HTTPS 将 www 重定向到非 www
htaccess 将 www 重定向到非 www 仍然将 .php 扩展名放在 uri 中
sh Apache2将www重定向到非www .htaccess