2014-09-01 105 views
1

我期待轉發一箇舊網站的幾個目錄到一個新的域,以便客戶仍然可以訪問舊網站的數據(即後端區域的WordPress的網站)以及由於其內容而保持對特定目錄的訪問。htaccess轉發衝突與wordpress

我設置的規則絕對可行,但與wordpress的規則結合時似乎有問題 - 我對htaccess的東西不是很滿意,所以我希望這是明顯而愚蠢的。

這是全(略刪節)htaccess的:

# 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 

<IfModule mod_rewrite.c> 
    RewriteRule !^(wp-admin(/.*)?|wp-login(/.*)?|shop2(/.*)?)$ http://newdomain.tld [R=301,L] 
</IfModule> 

的/ SHOP2 /目錄工程完全符合預期,即所有流量在這一領域/ SHOP2 /住宿和不轉移。

但是,我用wp-admin和wp-login得到了一些奇怪的行爲。 wp-admin將用戶轉發到新域,忽略新規則,但是它包含了像實際wp-admin頁面上那樣的'redirect_to'URL參數。 wp-login不會轉發,但會加載一個無風格的404頁面。

我假設規則中存在衝突?

回答

1

讓你的規則是這樣的:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule !^((wp-admin|shop2)(/.*)?|wp-login\.php)$ http://newdomain.tld/ [R=301,L,NC] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

在通用保前內部WP規則重定向規則。

+1

這是合乎邏輯的 - 我會試一試! – 2014-09-01 10:27:05

+0

似乎沒有什麼區別於我能說的。我確定要清除所有的網站數據(因爲我知道htaccess的變化可能因緩存等原因難以測試)。 – 2014-09-01 10:32:04

+0

你在瀏覽器中輸入了什麼URL,但沒有重定向到http://newdomain.tld/ '?並且'/ wp-admin /'是否也有.htaccess? – anubhava 2014-09-01 10:33:49