.htaccess 行为差异www.foosite.com与foosite.com

.htaccess 行为差异www.foosite.com与foosite.com,.htaccess,cookies,dns,.htaccess,Cookies,Dns,我有一个正在实现的购物车(知名公司和可靠的平台)——它基于PHP/Smarty 如果我把www.foosite.com/store/放到浏览器中,效果会很好 如果我将foosite.com/store/放入浏览器,则无法正确填充保存的cookie变量。另外,我注意到它在.htaccess/.htpasswd块上提示了我两次 那么,www.与没有www.相比,它能在一个网站的行为上造成如此巨大的差异吗?有没有办法解决这个问题?解决这个问题的办法是在htaccess中添加一个重写规则来强制“www”

我有一个正在实现的购物车(知名公司和可靠的平台)——它基于PHP/Smarty

如果我把www.foosite.com/store/放到浏览器中,效果会很好

如果我将foosite.com/store/放入浏览器,则无法正确填充保存的cookie变量。另外,我注意到它在.htaccess/.htpasswd块上提示了我两次


那么,www.与没有www.相比,它能在一个网站的行为上造成如此巨大的差异吗?有没有办法解决这个问题?

解决这个问题的办法是在htaccess中添加一个重写规则来强制“www”,类似这样:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

好的,很酷-谢谢。这种.htaccess修补程序是你们一直以来作为标准做法处理的吗?或者在我的例子中,它是针对我网站中某些设计缺陷的“创可贴”修补程序吗?我确实在我们的一些网站中使用了这种技巧,这些网站需要始终通过“www”访问,但在你们的网站中,每种情况都不同,如果没有看到您的代码,或者您使用的平台是如何实现的,那么很难知道。关于cookies,我猜这与它们各自的域值的设置方式有关(看看这里,有一个很好的答案)。