Www和非www网站

时间:2010-10-28 11:15:18

标签: php cakephp

我有一个域名http://www.testexample.com。当我登录http://www.testexample.com并在浏览器中返回http://testexample.com时;不显示登录的用户信息 我知道上述两种情况都有不同的处理方式,因此在访问http://www.testexample.com时不会保留http://testexample.com的会话。

如果cakephp有办法在TLD上进行匹配,请告诉我。因此,每当我输入http://testexample.com时,都应该使用http://www.testexample.com

的会话

我使用以下代码从一个网址重定向到另一个网址

RewriteCond %{HTTPS} off   
RewriteCond %{HTTP_HOST} ps6309 [NC]   
RewriteRule ps6309.domain.co.in [L,R=301]

这是在我的本地测试机器上。这有时有效,有时则无效 我还将rewritelog指令添加到我的httpd.conf文件中。 但是日志文件没有得到更新。 如果有人有任何指示,请告诉我。

4 个答案:

答案 0 :(得分:5)

使用.htaccess重定向所有http://domain.com - > http://www.domain.com

RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]

答案 1 :(得分:4)

将cookie的域设置为testexample.com,然后可以跨子域共享,也不用担心www。

答案 2 :(得分:3)

如果您有很多项目,并且不想一次又一次地在.htaccess上对您的域名进行硬编码,请尝试以下代码:

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

这会将非www重定向到www。当您使用cakephp时,请将其放在位于/webroot

的.htaccess上

答案 3 :(得分:0)

尝试ini_set('session.cookie_domain', $domain);(记录as ini_set session.cookie_domainsession_set_cookie_params()),其中$ domain是您的域名,前缀为.。因此,使用域example.com(每rfc 2606),您将使用:

ini_set('session.cookie_domain', '.example.com');

请注意,这不是CakePHP特定的解决方案 - 查看the code for CakeSessionsession.cookie_domain永远不会设置,这意味着它属于默认值。填写app/config/bootstrap.phpapp/config/core.php中的那一行应该为您完成。