如果子域名不是www。,则重定向到www

时间:2016-03-03 10:39:08

标签: ruby-on-rails redirect nginx

在nginx配置中我添加了

server_name *.example.com example.com;

如果我只写

server_name www.example.com example.com;

nginx m.example.com正在重定向到以nginx配置配置的第一个网站。

对于第一行,我的网站在使用子域名时在轨道上显示相同的结果:m.example.com/hellowww.example.com/hello等等。没关系,但应将其重定向到www。

所以我需要重定向所有其他子域=> m.example.com/hello to www.example.com/hello因为SEO。如何从routes.rb进行重定向?

现在我只使用规则从无子域名重定向example.com/* to www.example.com/*

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

1 个答案:

答案 0 :(得分:2)

如果您愿意,可以直接在Nginx中执行此操作。

server_name *.example.com example.com;

if ($host != 'www.example.com') {
    rewrite ^ http://www.example.com$request_uri? permanent;
}

删除永久标志以停止这是301重定向。

相关问题