2014-09-24 50 views
0

我遇到的問題非常類似於here,該問題從未解決。301重定向爲wordpress多站點子域

我有一個WordPress多站點安裝與子域名,我試圖讓舊網址重定向到新的。

基本上,我使用

RewriteCond %{HTTP_HOST} 

定位的每個子域,與一批以下的RewriteRules的。

這裏是我的一小段代碼:

# Rewrite rules for French site 
RewriteCond %{HTTP_HOST} ^fr.nomacorc.com$ [nc] 
RewriteRule ^home\.php$ http://fr.nomacorc.com/ [R=301,NC,L] 
RewriteRule ^aboutus\.php$ http://fr.nomacorc.com/propos-de-nous/ [R=301,NC,L] 
RewriteRule ^ourclosures\.php$ http://fr.nomacorc.com/bouchons-pour-le-vin/ [R=301,NC,L] 

# Rewrite rules for German site 
RewriteCond %{HTTP_HOST} ^de.nomacorc.com$ [nc] 
RewriteRule ^home\.php$ http://de.nomacorc.com/ [R=301,NC,L] 
RewriteRule ^aboutus\.php$ http://de.nomacorc.com/uber-uns/ [R=301,NC,L] 
RewriteRule ^ourclosures\.php$ http://de.nomacorc.com/weinverschlusse/ [R=301,NC,L] 

我希望有發生的是de.nomacorc.com/aboutus.php重定向到de.nomacorc.com/uber-uns,而是將其重定向到fr.nomacorc.com/propos-de-nous/。 ourclosures.php重定向也發生了同樣的情況。

我在做什麼錯這個代碼?

回答

3

我在this other thread找到了答案。

我需要做的是將RewriteRules組鏈接到上面的RewriteCond。要做到這一點是這樣描述得很好:

- Negate the condition (prepend it with !) 
- If you have multiple RewriteConds: 
- Change logical ANDs in the Conds to ORs and vice versa. 
- Add a skipping rewrite rule in front of all rules that you want to tie to the condition(s), set the S parameter to the number of Rule lines to be skipped. 

因此,這裏是我糾正代碼:

# Rewrite rules for French site 
RewriteCond %{HTTP_HOST} !^fr.nomacorc.com$ [nc] 
RewriteRule .? - [S=3] 
RewriteRule ^home\.php$ http://fr.nomacorc.com/ [R=301,NC,L] 
RewriteRule ^aboutus\.php$ http://fr.nomacorc.com/propos-de-nous/ [R=301,NC,L] 
RewriteRule ^ourclosures\.php$ http://fr.nomacorc.com/bouchons-pour-le-vin/ [R=301,NC,L] 

# Rewrite rules for German site 
RewriteCond %{HTTP_HOST} !^de.nomacorc.com$ [nc] 
RewriteRule .? - [S=3] 
RewriteRule ^home\.php$ http://de.nomacorc.com/ [R=301,NC,L] 
RewriteRule ^aboutus\.php$ http://de.nomacorc.com/uber-uns/ [R=301,NC,L] 
RewriteRule ^ourclosures\.php$ http://de.nomacorc.com/weinverschlusse/ [R=301,NC,L] 

我希望這可以幫助別人誰可能有同樣的問題!