会话在htaccess重写时丢失了

时间:2015-11-27 19:31:38

标签: .htaccess session cakephp mod-rewrite cakephp-3.0

Juste发现每次通过.htaccess重写我的网址时,CakePhp正在为我的用户初始化一个新会话。

这是我的htaccess内容:

<IfModule mod_rewrite.c>    
RewriteCond %{REQUEST_URI} !^/Campagne(.+)Virale/ [NC]
RewriteRule ^(.*)$  Campagne\ Virale/$1   [L,NE]
</IfModule>

我的会话设置如下:

'Session' => [
    'defaults' => 'cake',
    'timeout' => 6000,
    'ini' => [
        'session.cookie_secure' => false
    ]
],

因此,当访问https://exemple.com/时,会创建一个新会话,https://exemple.com/Campagne%20Virale/工作正常。

知道为什么吗?谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

好吧,据我所知,问题是Cakephp基本cookie路径与基本路径相同。因此原始和重写的基本路径似乎不同,导致生成新会话。

要解决此问题,我在app.php中指定了基本cookie路径

'Session' => [
    'defaults' => 'cake',
    'ini' => [
        'session.cookie_path' => '/',
        'session.cookie_domain' => 'exemple.com'
    ]
],

如果您对此问题有更好的解释,请随时回答以后的问题。