我刚刚在我的网站上设置了 cloudflare ssl,现在只要 redirect_to @thing
在 rails 中被调用,客户端就会重定向到 https://subdomain/thing/1
而不是 https://subdomain.domain.com/thing/1
。现在我不确定是否需要更改 cloudflare A
记录,因为我在 CNAME | 之前有 A 记录子域名 | host
不再工作了。如果需要更多信息,请告诉我!
Rails 服务器像这样启动 rails s -p 3000 -b0.0.0.0 -e production
DNS 记录是
别名 |子域名 |主持人
一个|域名 |服务器ip
一个|万维网 |服务器ip
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;
}
```
最佳答案
您可以添加以下更改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
关于ruby-on-rails - Rails redirect_to 正在重定向到 https ://subdomain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52396641/