我正在尝试将旧域重定向到新域。这些页面具有相同的名称,例如/ 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]
答案 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
开头的网址路径。