【问题标题】:301 redirect to new domain with same url structure301重定向到具有相同url结构的新域
【发布时间】:2015-05-07 19:30:06
【问题描述】:

我有一个正在迁移到新域的 Magento 网站。我希望 301 将所有页面从旧域重定向到保持相同 url 结构的新域。

我已将旧域上的 .htaccess 文件更新为:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^new-domain.com$ [NC]
RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,L]

问题:上面似乎将每个实例:old-domain.com/subdir/whatever 仅重定向到主域:new-domain.com

我希望将old-domain.com/subdir/whatever 重定向到:new-domain.com/subdir/whatever

知道什么地方出了问题吗?

【问题讨论】:

    标签: .htaccess magento redirect http-status-code-301


    【解决方案1】:

    调整您的规则以使用不依赖于.htaccess 目录的REQUEST_URI 变量:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
    RewriteRule ^ http://new-domain.com%{REQUEST_URI} [R=301,L,NE]
    

    最好在测试此规则之前清除浏览器缓存。

    PS:您需要将主机名条件匹配到旧主机而不是新主机。

    【讨论】:

      【解决方案2】:

      这应该重定向并保留主域之后的路径。

      RewriteEngine on
      RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
      RewriteRule ^(.*)$ http://new-domain.com/$1 [R=301,L]
      

      【讨论】:

      • 嗨,亚当 - 作为参考,这也很好。尽管 anubhava 指出了我的主要问题——我定义了错误的 HTTP_HOST。非常感谢您的贡献
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 2022-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多