Htaccess重定向不能从gmail链接工作


htaccess redirecting not working from gmail link

我有问题,如果我通过电子邮件发送一个链接。当人们点击非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]
  1. 建议在测试中使用R=302,一旦它工作良好,将其更改为R=301
  2. 确保将此规则作为Joomla .htaccess的第一条规则。
  3. 在新浏览器中测试以避免浏览器中的旧缓存。