尝试在Wordpress安装上将所有流量从www.old-domain.co.uk和old-domain.co.uk重定向到www.new-domain.co.uk,但还需要将某些特定页面重定向到新的网址。我有:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
redirect 301 /xxx/4533644418 http://www.new-domain.com/xxx/
redirect 301 /yyy/4533644413 http://www.new-domain.com/yyy/
redirect 301 /zzz/4533681089 http://www.new-domain.com/zzz/
这似乎有效,但问题是如果我输入垃圾网址 - 例如old-domain.co.uk/trash.html - 它404s但地址栏仍然显示旧域(old-domain.co.uk/trash.html)而不是像我期望的那样重定向(www.new-domain。 COM / trash.html)。
我担心这可能表明我的重定向方法有误,并会感谢任何建议。非常感谢。
答案 0 :(得分:1)
垃圾URL由Wordpress部分匹配,永远不会到达您的规则以重定向到新网站。将重定向规则移至顶部,如下所示
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
#Most specific Rules should be at the top
redirect 301 /xxx/4533644418 http://www.new-domain.com/xxx/
redirect 301 /yyy/4533644413 http://www.new-domain.com/yyy/
redirect 301 /zzz/4533681089 http://www.new-domain.com/zzz/
RewriteCond %{HTTP_HOST} ^(www\.)?old-domain.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>