ruby-on-rails - Rails redirect_to 正在重定向到 https ://subdomain

标签 ruby-on-rails ssl nginx subdomain cloudflare

我刚刚在我的网站上设置了 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/

相关文章:

ruby-on-rails - 使用设计范围重新定义默认路由

javascript - EmberJS 没有找到模型,但它在那里

ruby-on-rails - PayPal 的 ActiveMerchant Poodle 补丁

ruby-on-rails - 为什么 ActionDispatch::Request.original_url 返回错误的方案?

linux - 用top判断Linux进程内存

ruby-on-rails - 设计中未初始化的常量 ActiveSupport::SecureRandom

ssl - 表彰机器名称和 IP 地址的自签名证书

ssl - SSL_CTX_set_verify 回调从哪里获取证书?

ruby-on-rails - Nginx 瓶颈作为负载均衡器?

php - 如何在后台 PHP 执行很长的任务?