htaccess重定向无法从gmail链接工作

时间:2014-06-26 06:33:26

标签: php apache .htaccess mod-rewrite joomla2.5

如果我通过电子邮件发送一个链接,我遇到了问题。当人们从gmail点击非www链接时,他们会重定向到我网站的主页,但当他们点击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管理。有什么建议吗?在此先感谢:)

2 个答案:

答案 0 :(得分:0)

它似乎对我也有用。但是在您的规则中,添加B标志应确保$1捕获中的奇怪字符能够正确地重新编码。

试试这个:

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

答案 1 :(得分:0)

在此处使用NE (no escape) flag非常重要。还可以更好地使用REQUEST_URI

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
  1. 建议您在测试中使用R=302,一旦工作正常,请将其更改为R=301
  2. 请务必将此规则作为您在Joomla .htaccess
  3. 中的首要规则
  4. 在新浏览器中测试以避免在浏览器中使用旧缓存。