Совместное использование сеанса cookie Rails и проблема "www.example.com" или "example.com"
Когда люди получают доступ к моему приложению на сайте www.example.com и входят в систему, они получают файл cookie. Я использую опцию cookie для хранения сессии на Rails. Заходя на example.com (без www), они должны снова войти в систему, потому что Firefox не распознает предыдущий сеанс.
Итак, что вы думаете, это лучший способ избежать этого?
Я думаю, я буду использовать маленький .htaccess
правило (Apache + Passenger) вот так:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L]
Ребята, вы считаете это хорошим решением?
2 ответа
Решение
Что бы я сделал, это:
- Настройте отдельные виртуальные хосты для domain.com и www.domain.com
- Никогда не публикуйте ссылки на domain.com, только на www.domain.com
- Когда пользовательский агент запрашивает http://domain.com/, перенаправьте ответ 301 на http://www.domain.com/
- Выпускать куки только с www.domain.com
- Не пытайтесь сделать весь сайт доступным с domain.com, только главную страницу (которая перенаправлена)
Вам не нужно задействовать рельсы в этом решении вообще.
Создайте отдельную запись виртуального хоста:
ServerName domain.com
Redirect permanent / http://www.domain.com
Перенаправление указывает пользователю на ваш другой виртуальный хост:
ServerName www.domain.com