2012-07-25 64 views
0
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC] 
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301] 

多數民衆贊成WWW /非WWW重定向我該如何結合這些.htaccess命令?

,這是對我的維護頁面

ErrorDocument 503 /system/maintenance.html 
RewriteEngine On 
RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$ 
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ - [redirect=503,last] 

謝謝!

+0

把他們一個接一個地不行? – 2012-07-25 00:46:44

+0

我不知道如果這是做錯的方法 – Tallboy 2012-07-25 00:47:50

+0

這取決於你想先申請哪一個。 – 2012-07-25 00:49:06

回答

1

這取決於你想先申請哪一個,如果RewriteBase可以適用於兩套規則(我假設它可以,因爲第二條規則並不真正在乎基地是什麼)。您也可以刪除重複的RewriteEngine On指令:

# this is more or less something separate from rewrite engine 
ErrorDocument 503 /system/maintenance.html 

# turn on the rewrite engine 
RewriteEngine On 
RewriteBase/

# do www to non-www redirect 
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC] 
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301] 

# Handle maintenance 
RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$ 
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ - [redirect=503,last] 

這階表示即使保養的,萬維網到非www仍然發生。如果他們相反,無論主機名是www還是非www,都可以處理維護。

+0

@Tallboy否,'ErrorDocument'只是聲明503錯誤需要由'/ system/maintenance.html'處理。你只需要聲明它,並且你可以把它放在任何地方。我把它放在最上面,這樣你就可以更改這兩個規則來查看你想要的行爲。 – 2012-07-25 01:00:07