Rails redirect_to перенаправляет на https://subdomain - PullRequest
0 голосов
/ 19 сентября 2018

Я только что установил cloudflare ssl поверх моего сайта, и теперь, когда в rails вызывается redirect_to @thing, клиент перенаправляет на https://subdomain/thing/1, а не https://subdomain.domain.com/thing/1.не уверен, что мне нужно изменить записи cloudflare A сейчас, когда ssl настроен, потому что запись A, которая была у меня до CNAME | subdomain | host, больше не работает.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!

Сервер Rails запускается следующим образом: rails s -p 3000 -b0.0.0.0 -e production

Записи DNS: CNAME | subdomain | host A | domain | serverip A | www | serverip

Сервер rails работает наserverip:3000 и nginx направляет весь трафик с конкретным поддоменом на этот порт.Нет проблем с перенаправлением, если все выполняется с помощью serverip:3000, но когда я выполняю действия с использованием subdomain.domain.com, проблемы с перенаправлением снова появляются

nginx config `` `

server {
    listen 80;
    server_name subdomain.domain.com;
    location / {
        proxy_pass http://subdomain;
    }
}

upstream subdomain {
    server 127.0.0.1:3000;
}

` ``

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете добавить следующие изменения routes.rb

constraints subdomain: false do
  get ':any', to: redirect(subdomain: 'www', path: '/%{any}'), any: /.*/
end

Вы можете установить количество доменов верхнего уровня в качестве аргумента для субдомена, например:

>> app.get('http://www.localhost')
>> app.request.subdomain
=> "" 
>> app.request.subdomain(0)
=> "www" 

Это также можетбыть установленным в файле среды:

# config/environments/development.rb
config.action_dispatch.tld_length = 0
...