Почему я теряю сеанс при работе с пунктирным доменным именем (example-dashed.com)? - PullRequest
3 голосов
/ 18 мая 2011

У меня есть веб-сайт www.abrisud.com.Этот веб-сайт имеет 7 доменных имен (по одному для каждого языка): abrisud.com, abrisud.it, abrisud.de и т. Д. И abrisud-enclosure.co.uk.

Проблема в последнемпервый: я теряю свою сессию по каждому запросу.Каждый раз, когда я загружаю страницу, у меня появляется другой идентификатор сессии.На других доменах все работает просто отлично.

Сайт работает под управлением ruby ​​1.8.7 и rails 3.0.0.

Я действительно убежден, что проблема возникает из "-" вдоменное имя, но я просто не могу найти что-либо (или почти что-нибудь) по этому вопросу через Интернет.

Надеюсь, я достаточно ясен, если не сказать мне просто.

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Вот ответ:

Из модуля ActionDispatch :: Http :: URL (Rails 3.0.x) обязательно прочитайте комментарии; -)

# Returns the \domain part of a \host, such as "rubyonrails.org" in "www.rubyonrails.org". 
# You can specify a different <tt>tld_length</tt>, such as 2 to catch rubyonrails.co.uk in "www.rubyonrails.co.uk".
def domain(tld_length = 1)
  return nil unless named_host?(host)

  host.split('.').last(1 + tld_length).join('.')
end
1 голос
/ 27 мая 2011

Ну, вызов метода domain с соответствующим аргументом _tld_lenght_ не сработал, request.domain ( abrisud-enclosure.co.uk ) был хорош, но неsession_domain (по-прежнему co.uk ).

Так что мне пришлось добавить следующие строки в качестве фильтра перед в мой application_controller:

def set_session_domain
  request.session_options[:domain] = request.domain
end

Если у вас естьлучшее решение Я открыт для этого, так как считаю, что это действительно грязное исправление.

Спасибо

0 голосов
/ 20 мая 2011

Я взял пик на вашем сайте, файл cookie установлен с: domain = co.uk; путь = /

Так что проблема в вашем стеке рельсов, а не в браузере (ах) - время отладки: -)

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