2017-01-02 39 views
0

目前,我在.htaccess文件中使用此代碼來觸發我的站點的維護頁面。排除特定目錄中的維護頁面

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f 
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /maintenance.html [R=503,L] 
ErrorDocument 503 /maintenance.html 
Header Set Cache-Control "max-age=0, no-store" 
</IfModule> 

我會怎麼做,所以我仍然可以訪問的目錄,我將工作和情況下我的朋友希望訪問它不只是我的IP地址。

我已經做了一些搜索,但沒有發現任何尚未

乾杯

湯姆

+0

好吧,聽起來像一個很好的計劃。去吧! (_or你在這裏有什麼問題嗎?_) – arkascha

+0

@arkascha是的,我做過了,如果你看過我說過我想讓它在維護頁面啓動時可以訪問它 –

+0

你確實寫過。但這不是一個問題,而是一個陳述,並且這在這裏不適合作爲一個問題。爲此,你需要展示你自己的嘗試來解決這個任務,而不僅僅是問:「爲了我而做」。你看我們不是免費的編碼服務。預計你將能夠自己使用你的工具。只有當你被自己的企圖困住時,那麼是時候在這裏提出一個具體的問題。如果你無法或者只是懶惰地開始自己,那麼我建議你聘請一個有償的程序員爲你做你的工作。 – arkascha

回答

0

我說你可以簡單的維修模式處理之前執行一些例外規則:

<IfModule mod_rewrite.c> 
RewriteEngine On 

# immediately end all rewriting for specific IPV4 addresses 
RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.123$ [OR] 
RewriteCond %{REMOTE_ADDR} ^321\.321\.321\.321$ 
RewriteRule^- [END] 

# for everyone else: check for maintenance mode 
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f 
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /maintenance.html [R=503,L] 
ErrorDocument 503 /maintenance.html 
Header Set Cache-Control "max-age=0, no-store" 
</IfModule> 

或者,您可以將否定條件作爲附加條件添加到維護模式重寫邏輯。但我認爲上述內容更易於閱讀和維護。

+0

不幸的是,由於某些原因,當使用您給我的代碼時,它會出現內部錯誤500 –

+0

您在http服務器錯誤日誌文件中得到的具體錯誤消息是什麼? – arkascha

+0

查看後,日誌文件中沒有最近的錯誤 –