【问题标题】:redirect non-www to www with correct URL params使用正确的 URL 参数将非 www 重定向到 www
【发布时间】:2012-11-12 05:36:13
【问题描述】:

我需要使用正确的 URL 参数将非 www 重定向到 www。谷歌索引中已经有很多网址(非 www)。我需要一个配置,网址中的参数重定向正确。一个例子:

nice2stay.com/houses/1

重定向到:

www.nice2stay.com/nl/holidayhouses/nameofthehouse

想法?

我刚刚在我的开发笔记本电脑上尝试了以下代码。

constraints(:host => "localhost") 做 根:to => 重定向(“http://www.localhost:3000”) 匹配 '/*path', :to => 重定向 {|params| "http://www.localhost/#{params[:path]}"} 结束

当请求的url是根域时这个工作,但是当请求的url是localhost:/houses时不行是路径配置不正确吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    编辑:很抱歉我没有看到rails 标签...以下内容仍然有效:您可以使用前端服务器(apache 或 nginx)来执行此操作。我猜你也可以在应用程序控制器中进行 301 重定向。


    这取决于您的服务器。

    如果您在 apache 上,请确保已安装 mod_rewrite(大多数共享主机都是这种情况),在您的主机根目录下创建一个 .htaccess 文件并在其中键入以下重写规则:

    <IfModule mod_rewrite.c>
      Options +FollowSymlinks
      RewriteEngine On
      RewriteCond %{HTTPS} !=on
      RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
      RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    

    这将强制使用 www. 前缀,并执行从非 www 到 www 网址的 301 重定向,这是 google 的最佳解决方案。

    【讨论】:

      猜你喜欢
      • 2015-01-01
      • 2011-06-24
      • 2019-03-09
      • 2011-11-05
      • 2013-12-20
      • 2018-07-14
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      相关资源
      最近更新 更多