我知道有很多问题可以回答这个问题.我熟悉.htaccessnginx.conf种方法,但我无法在Heroku上使用此类传统配置方法.

Simone Carletti给出了这个利用Rails 2的答案.x金属,但I'm using Rails 3和这不兼容:

100

请注意:

我不是在我的应用程序控制器中寻找一个简单的before_filter.我想完成一个类似于Simone的重写.我相信这至少是Web服务器或Rack之类的中间件的工作,所以我想在实际应用程序代码中省go 这一点.

球门

redirect                to                  status
----------------------------------------------------
www.foo.com             foo.com             301
www.foo.com/whatever    foo.com/whatever    301

应重定向Only台匹配/^www\./台的主机.应忽略所有其他请求.

推荐答案

Ruby on Rails 4中,在维护路径名的同时从任何URL中删除www.只需使用:

# config/routes.rb

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

相比之下,将www.添加到任何尚未包含它的URL的开头可以通过以下方式实现:

# config/routes.rb

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

Ruby-on-rails相关问答推荐

Rails版本7.1.2:当验证失败且控制器发送422状态时,JS停止工作

Rails 7中的Turbo流

如何从 gem 覆盖 JSONAPI.configure

Rails ActiveRecord::LogSubscriber 不输出详细查询日志(log)

Ruby on Rails 让外键工作

ActiveRecord 错误地转义 JSON 字符串

计算总价(商品数量*商品价格)

BigDecimals 的总和最终成为整数 [Ruby on Rails]

如何使用 RSpec 和 Devise/CanCan 进行集成测试?

使用brew 软件安装了 elasticsearch,但找不到配置文件

验证以确保唯一性但忽略空值?

从 Rails 生成 PDF

在 Nokogiri 中获取属性值以提取链接 URL

如何在 Rails 中验证日期以使其在今天之后?

如何测试自定义验证器?

rails 单数资源还是复数?

如何覆盖:在 has_many 中定义的顺序

如何一次显示一条 Ruby on Rails 表单验证错误消息?

Rails: Sprockets::Rails::Helper::AssetNotPrecompiled 在开发中

在 Rails 4.1 中,如何通过枚举符号查找记录?