.htaccess文件完全匹配且不完全匹配

时间:2016-10-04 20:50:28

标签: wordpress .htaccess mod-rewrite url-redirection

我刚搬到WordPress网站。我曾经在子域(blog.example.com)上有一个静态站点和一个WordPress博客。我正在使用下面的代码,它将我的所有博客帖子重定向到我的新网站。有没有办法为主博客页面制作例外?具体来说,我需要将以下代码应用于我的所有帖子,类别等(它已经是),但我需要将我的旧博客主页(blog.example.com)301重定向到我的新博客主页(example.com/blog)。为了清楚起见,我的帖子等在永久链接中没有使用blog

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</IfModule>

更新:谢谢,奥拉夫!得到了这个与你的建议。这是我寻找答案的其他人的最终代码。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule ^$ http://www.example.com/blog [R=301,L]
RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

将最具体的规则放在开头。在您的情况下,使用主页的重定向前置现有规则

RewriteCond %{HTTP_HOST} ^blog.example.com$ [NC]
RewriteRule ^$ http://www.example.com/blog [R,L]

如果一切正常,您可以将R替换为R=301从不使用R=301进行测试。