#php #web-applications
#php #веб-приложения
Вопрос:
У меня есть веб-сайт. Если я войду в домен этого формата http://example.com а затем измените мой адрес на http://www.example.com я обнаружил, что моя учетная запись не авторизована. Если я изменю адрес на http://example.com , Я обнаружил, что моя учетная запись зарегистрирована.
Я связался со своим хостом, они сказали мне, что это проблема с программированием.
Как я могу решить эту проблему, чтобы оба адреса представляли один и тот же доступ / сеанс / файлы cookie?
Я использую PHP и MySQL
Комментарии:
1. И вы устанавливаете файл cookie доступным для всех доменов, используя косую черту в качестве пути к домену. Смотрите
setcookie ("TestCookie", "", time() - 3600, "/", ".example.com", 1);
Ответ №1:
www.example.com
и example.com
, по-видимому, являются двумя разными доменами для браузера, хотя они оба ведут на один и тот же сайт. То же самое произошло бы, если бы вы припарковали там другой домен, скажем, example.net
.
Чтобы решить проблему, довольно часто переписывают URL через .htaccess. Решите, какое доменное имя вы предпочитаете использовать, и добавьте что-то подобное в свой .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
или
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301]
(первый удаляет, второй добавляет www)
Комментарии:
1. Это также избавит вас от головной боли, если вы решите перейти на HTTPS, а специалисты по SEO, с которыми я работал в прошлом, упоминали, что это помогает избежать обвинений поисковых систем в «дублировании контента».
2. Что ж, проблемы с дублирующим контентом можно избежать, используя канонический URL, но ваше замечание по-прежнему справедливо, спасибо :).
Ответ №2:
Как я могу решить эту проблему, чтобы оба адреса представляли один и тот же доступ / сеанс / файлы cookie?
Вы должны указать доменный путь вашего файла cookie следующим образом, чтобы сделать его доступным на всех поддоменах: (www — это поддомен):
.domain.com
Комментарии:
1. Любой домен с префиксом www обычно называется ОТКРЫТЫМ ДОМЕНОМ
Ответ №3:
Это не то же самое .. обычно вы можете перейти к www.example.com просто с помощью записи example.com для вашего браузера, но ваш браузер добавил www к вашему URL.. в принципе, это не одно и то же
Комментарии:
1. Точная оценка, но она не предоставляет никакой полезной информации, которая помогла бы решить проблему (я предполагаю, что именно поэтому этот ответ был отклонен).