我有一个域名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文件中。 但是日志文件没有得到更新。 如果有人有任何指示,请告诉我。
答案 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
答案 3 :(得分:0)
尝试ini_set('session.cookie_domain', $domain);
(记录as ini_set session.cookie_domain和session_set_cookie_params()
),其中$ domain是您的域名,前缀为.
。因此,使用域example.com(每rfc 2606),您将使用:
ini_set('session.cookie_domain', '.example.com');
请注意,这不是CakePHP特定的解决方案 - 查看the code for CakeSession,session.cookie_domain
永远不会设置,这意味着它属于默认值。填写app/config/bootstrap.php
或app/config/core.php
中的那一行应该为您完成。