我有问题,如果我通过电子邮件发送一个链接。当人们点击非www链接从gmail他们重定向到我的网站的主页,但当他们点击www添加的链接,他们到达了正确的页面。下面是一个例子:
http://www.google.com/url?q=http%3A%2F%2Fgreatratedjs.com%2Fcurtnw&sa=D&sntz=1&usg=AFQjCNH_VlMDSssNnC-20Fliz9oT7Ip3ag(不支持非www)
http://www.google.com/url?q=http%3A%2F%2Fwww.greatratedjs.com%2Fcurtnw&sa=D&sntz=1&usg=AFQjCNE-ld9HPvMYZMLh-IVib7insdGRyQ(与www工作良好)
.htaccess重定向规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
我使用Joomla与社区建设者。Joomla内容工作良好,只有社区建设者的用户配置文件有这样的问题。我正在使用sh404sef扩展URL管理。有什么建议吗?提前感谢:)
这似乎也适用于我。但是在您的规则中,添加B
标志应该确保来自$1
捕获的奇怪字符得到正确的重新编码。
试试这个:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [B,R=301,L]
这里使用NE
(no escape)标志是很重要的。最好使用REQUEST_URI
:
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
- 建议在测试中使用
R=302
,一旦它工作良好,将其更改为R=301
。 - 确保将此规则作为Joomla
.htaccess
的第一条规则。 - 在新浏览器中测试以避免浏览器中的旧缓存。