我只是在我的网站上设置了cloudflare ssl,现在无论何时在Rails中调用redirect_to @thing
时,客户端都会重定向到https://subdomain/thing/1
而不是https://subdomain.domain.com/thing/1
。现在不确定是否已设置ssl,是否需要更改cloudflare A
记录,因为我在CNAME | subdomain | host
之前拥有的A记录不再起作用。如果需要更多信息,请告诉我!
像这样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配置 ```
server {
listen 80;
server_name subdomain.domain.com;
location / {
proxy_pass http://subdomain;
}
}
upstream subdomain {
server 127.0.0.1:3000;
}
```
答案 0 :(得分:0)
您可以添加以下更改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