2016-10-05 54 views
0

我沒有真正使用到Apache重寫模塊重寫,所以我需要一點點幫助^^Apache網址與維護頁面

目前,我有這樣的:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule !\.(js|ico|gif|jpe?g|png|css|html|xml)$ index.php [QSA,L]

它會將所有請求index.php如果它們沒有指向具有上面列出的擴展名的現有文件。

現在,我想補充一個規則說:

  • 如果文件maintenance.html存在於根,重定向到它的任何要求
  • 否則發送到index.php請求(或返回文件,如果它是一個現有的和允許的文件)

謝謝:)

回答

0

我說你只是平常重寫之前添加例外:

RewriteEngine On 

RewriteCond /maintenance.html -f 
RewriteRule^maintenance.html [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !\.(js|ico|gif|jpe?g|png|css|html|xml)$ index.php [QSA,L] 

而且一般說明。您應該總是更願意將這些規則放置在實際的http服務器主機配置中。 .htaccess風格文件出了名的錯誤容易出錯,很難調試,他們真的減慢服務器,往往沒有理由。它們僅適用於您需要編寫自己的重寫規則(無論如何是安全噩夢)的情況。而不是可以訪問主機配置(讀取:真正便宜的託管提供程序)或應用程序需要編寫自己的重寫規則。

+0

謝謝!我不知道從htaccess文件慢下來。無論如何,我無法訪問服務器配置:s – pyrsmk

+0

速度減慢的原因非常簡單:服務器必須檢查每個文件系統文件夾,直到請求引用的所有對象(包括文件! )對於這些文件,閱讀它們(一次又一次,因爲它們可能已經改變)解釋它們並相應地採取行動。相比之下,在啓動時間,在主機配置中放置的規則顯示爲技術天堂的單個傳遞... – arkascha

+0

是的,但...是不是Apache驗證這種文件的存在呢? – pyrsmk