301 重定向到具有相同 url 结构的新域

301 redirect to new domain with same url structure

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

我已经更新了旧域上的 .htaccess 文件:

RewriteEngine On

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

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

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

知道哪里出了问题吗?

调整您的规则以使用不依赖于 .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: 您需要将主机名条件匹配到旧主机而不是新主机。

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

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