Изменение www делает истечение сессии - PullRequest
0 голосов
/ 12 марта 2012

У меня есть сайт продавца, связанный с банком. Я определил этот успешный URL в банке:

http://www.mydomain.com/deposit.php

Когда пользователь начинает процесс оплаты, он заходит на сайт банка и после оплаты перенаправляет на успешный URL на моем сайте. Если пользователь заходит на мой сайт с этим URL (без www):

http://mydomain.com/

Сессия истекает, и он должен войти снова. но когда он входит с этим URL:

http://www.mydomain.com/

Сессия не истекает, и все в порядке. как я могу решить эту проблему?

Ответы [ 3 ]

2 голосов
/ 12 марта 2012

Дело в том, что ваш cookie-файл сеанса, вероятно, специально привязан к www.mydomain.com, поэтому при доступе к mydomain.com браузеры решают не отправлять cookie-файл сеанса.

Посмотрите на функцию ini_set и значение session.cookie_domain.

if (count(explode('.', $domain)) > 2) {
    ini_set('session.cookie_domain', $domain);
}
1 голос
/ 12 марта 2012

Взято из 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 должно решить проблему.Однако кто-то еще должен будет уточнить, что именно является причиной этой проблемы.

Редактировать: Мне кажется, что Пабло Санта-Крус прав.

1 голос
/ 12 марта 2012

Вы можете заставить www. (или принудительно, используя http://mydomain.com также), используя файл .htaccess.

RewriteCond %{HTTP_HOST} !^www.mydomain\.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R]

The! в RewriteCondition сообщает серверу, что если адрес НЕ равен следующему, перенаправьте его в RewriteRule.

Вы можете найти много других советов по переписыванию, используя .htaccess в Интернете.

Примечание. Чтобы это работало, вам необходимо сначала включить это в файле .htaccess:

RewriteEngine On

И убедитесь, что ваша конфигурация Apache (или другого хоста) поддерживает mod_rewrite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...