将旧域和页面重定向到新域上的等效页面

时间:2019-02-28 08:28:42

标签: .htaccess redirect

我正在尝试将旧域重定向到新域。这些页面具有相同的名称,例如/ my-amazing-page,但是在新网站上,URL为/ se / my-amazing-page。

例如,我需要一个重定向规则

olddomain.se/recipes/[ALL RECIPE PAGES]

newdomain.com/se/recipes/[ALL RECIPE PAGES]

我在堆栈溢出方面已经尝试了许多答案,还介绍了here中描述的解决方案,但我只是无法使它们起作用。他们似乎要做的就是将旧域重定向到新域的主页(根),而忽略子目录和页面。

当前我正在使用以下内容:

RewriteCond %{HTTP_HOST} ^olddomain\.com/recipes/$ [NC]
RewriteRule ^(.*)$ https://newdomain.com/se/recipes/$1 [R=301,L]

但是,如上所述,这只是将我重定向到新域的主页。是的,我已经清除了浏览器缓存,并正在以隐身模式在浏览器中进行测试。 我当前的HTaccess完整文件:

# BEGIN WordPress
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress

RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteCond %{REQUEST_URI} ^/recipes/
RewriteRule ^recipes/(.*)$ https://newdomain.com/se/recipes/$1 [R=301,L]

1 个答案:

答案 0 :(得分:0)

/recipes是不是主机的url路径。  您需要使用℅{REQUEST_URI}。匹配网址路径。以下规则应该有效。

RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteCond %{REQUEST_URI} ^/recipes/
RewriteRule ^recipes/(.*)$ https://newdomain.com/se/recipes/$1 [R=301,L]

第二条RewriteCond在此规则中是可选的。您可以删除,因为RewriteRule已经处理了以/recipes开头的网址路径。