我有一个链接到银行的商家网站。 我已在银行中定义了此成功网址:
http://www.mydomain.com/deposit.php
当用户开始付款流程时,他会进入银行网站,付款后会重定向到我网站上的成功网址。 如果用户使用此URL(没有www)进入我的网站:
http://mydomain.com/
会话过期,他应该再次登录。但当他输入此网址时:
http://www.mydomain.com/
会话不会过期,一切都很好。我该如何解决这个问题?
答案 0 :(得分:2)
问题是您的会话Cookie可能与www.mydomain.com
特别相关,因此,当您访问mydomain.com
时,浏览器会选择不发送会话Cookie。
查看ini_set
函数和session.cookie_domain
值。
if (count(explode('.', $domain)) > 2) {
ini_set('session.cookie_domain', $domain);
}
答案 1 :(得分:1)
你可以强迫www。 (或仅使用http://mydomain.com强制使用.htaccess文件。
RewriteCond %{HTTP_HOST} !^www.mydomain\.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R]
!在RewriteCondition中告诉服务器当地址不等于以下内容时,将其重定向到RewriteRule。
你可以在网上使用.htaccess找到更多重写技巧。
注意:要使其正常工作,您需要先在.htaccess文件中启用此功能:
RewriteEngine On
确保您的Apache(或其他主机)配置支持mod_rewrite。
答案 2 :(得分:1)
取自HTML5 Boilerplate .htaccess:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
将其放在.HTACCESS文件中可以解决问题。但是,其他人必须详细说明这个问题究竟是什么原因。
编辑:对我而言,就像Pablo Santa Cruz一样。