2010-09-22 109 views
2

我有一個網站設置爲子目錄與子域名如下:網站停機維護

/ [webroot] 
/subdomain1/ 
/subdomain2/ 

我想創建一個重寫所有被訪問的文件maintenance.php W/503消息的htaccess的文件,但我不知道爲什麼以下不會捕獲子目錄?

RewriteEngine On 
RewriteBase/
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.444$ 
RewriteCond %{REQUEST_URI} !^/maintenance\.php$ 
RewriteRule ^(.*)$ /maintenance.php [L] 

我一定要叫出每個子目錄類似...

RewriteRule ^/subdirectory1(.*)$ /maintenance.php [L] 
RewriteRule ^/subdirectory2(.*)$ /maintenance.php [L] 
+0

mod_rewrite從最底層的目錄開始尋找.htaccess文件;你有這些子目錄嗎? – Piskvor 2010-09-22 06:59:48

+0

不,我沒有超過root的htaccess文件。 – rrrfusco 2010-09-22 07:00:51

回答

0

如果你在你的子目錄有額外的htaccess的文件,你有在刪除該文件後觀察更改。如果htacess控件重寫,您在查看這些頁面時可能會收到404錯誤。

我期待看到維護頁面,並沒有意識到我需要根據下面的代碼有一個不同的IP地址:

這個代碼可以讓你的IP來查看該網站並沒有其他人:

RewriteEngine On 
RewriteBase/

#ip is not your ip. Change ip to see maintenance page 
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.444$ 

#requests made not to maintenance.php ... 
RewriteCond %{REQUEST_URI} !^/maintenance\.php$ 

#rewrite to maintenance.php 
RewriteRule ^(.*)$ /maintenance.php [L] 
1

這應該工作:

RewriteEngine On 
RewriteCond %{REMOTE_HOST} !^111\.222\.333\.444 
RewriteCond %{REQUEST_URI} !/maintenance.php$ 
RewriteRule $ /maintenance.php [L]