2015-04-20 110 views
1

我試圖將我的WordPress多站點根站點重定向到另一個頁面,但我仍然希望能夠訪問/wp-admin,/wp-login/wp-json.htaccess不包括某些子目錄的重定向網址

當我去瀏覽器時,我想url.com重定向到newurl.com除非它有上面的目錄之一。

這就是我想到的,但是當我去瀏覽器並輸入url.com它像往常一樣加載頁面。我哪裏錯了?

注意:底部的塊是重定向應該發生的地方。

Options FollowSymlinks 
RewriteEngine On 
RewriteBase/

# Force SSL/HTTPS 
# Note: X-Forwarded-Proto is required for AWS's Elastic Load Balancing. 
RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteRule ^index\.php$ - [L] 

# add a trailing slash to /wp-admin 
RewriteRule ^wp-admin$ wp-admin/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 
RewriteRule ^(wp-(content|admin|includes).*) $1 [L] 
RewriteRule ^(.*\.php)$ $1 [L] 
RewriteRule . index.php [L] 

# This is the block that should redirect, but isn't. 
RewriteCond %{HTTP_HOST} ^url\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^(/wp-admin$|/wp-login$|/wp-json$) 
RewriteRule^http://newurl.com/ [R=301] 
+0

'似乎沒有工作'。你可以說得更詳細點嗎 ?你試過的網址是什麼? –

+0

我試圖訪問'url.com',但它只是像往常一樣加載頁面,我已經更新了這個問題,使它更清晰一點。 – greg

+0

它似乎對我很好。 –

回答

1

你的規則工作正常。
你沒有看到它,因爲它在htaccess中的位置從未達到過。

其實,你需要在default -last規則之前放置規則,否則它永遠不會被執行。

Options FollowSymlinks 
RewriteEngine On 
RewriteBase/

# Force SSL/HTTPS 
# Note: X-Forwarded-Proto is required for AWS's Elastic Load Balancing. 
RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteRule ^index\.php$ - [L] 

# add a trailing slash to /wp-admin 
RewriteRule ^wp-admin$ wp-admin/ [R=301,L] 

# This is the block that should redirect, but isn't. 
RewriteCond %{HTTP_HOST} ^url\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^(/wp-admin$|/wp-login$|/wp-json$) 
RewriteRule^http://newurl.com/ [R=301] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 
RewriteRule ^(wp-(content|admin|includes).*) $1 [L] 
RewriteRule ^(.*\.php)$ $1 [L] 
RewriteRule . index.php [L] 
1

這對我來說很好。我在條件上改變了一些東西,並添加了L標誌以確保在滿足規則時停止。確保正在讀取您的.htaccess文件。你可以驗證你的apache配置文件有AllowOverride All,否則它不會讀你的htaccess文件。

Options -FollowSymlinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^url\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-login|wp-json)$ 
RewriteRule^http://newurl.com/ [R=301,L] 
+0

我假設它沒有觸及那些行 - .htaccess肯定是在工作 - 雖然看到我更新的問題,但我添加了其他的指示我已經在上面了(上面的工作正常。) – greg

+0

有沒有多個網站?如果這是在'url.com'的doc根目錄下的,你真的不需要這個條件來檢查主機是否是'url.com'。也可以嘗試將其放在其他規則之上。 –

+0

這是一個WordPress多站點站點,所以是的,有多個站點 - 我想讓我的根站點在其他地方重定向,同時仍然可以訪問它的管理頁面。 – greg