2016-10-04 215 views
1

我刚搬到一个WordPress站点。我曾经在一个子域上有一个静态网站和一个WordPress博客(blog.example.com)。我正在使用下面的代码,它将我的所有博客帖子都重定向到我的新网站。有什么办法可以为主博客页面设置例外吗?具体来说,我需要下面的代码适用于我的所有帖子,类别等(它已经是),但我需要我的旧博客主页(blog.example.com)301重定向到我的新博客主页(example.com/blog)。只是要非常清楚,我的帖子等没有在固定链接中使用blog.htaccess文件完全匹配而不完全匹配

<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> 
+0

请记住在正则表达式中转义点以匹配文字点而不是任何字符。即。 '^博客\。实例\ .COM $'。或者,使用词典对比。例如'= blog.example.com'。 – MrWhite

回答

1

把最具体的规则放在开头。在你的情况,前面加上重定向现有规则的主网页

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

当一切工作,因为它应该,你可以用R=301取代R从不R=301测试。