2016-10-04 120 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測試。