2011-08-10 43 views
2

我有一個腳本根據垃圾郵件數據庫中的查找自動將IP地址添加到my.htaccess文件。不過,我希望這些地址的後續訪問能夠查看我創建的403 ErrorDocument。顯然,他們不能,因爲他們被拒絕了。我的.htaccess看起來是這樣的:允許被阻止的IP查看403 ErrorDocument

ErrorDocument 403 /403.php 

deny from <ip address> 
deny from <ip address> 
deny from <ip address> 
deny from <ip address> 
yada yada yada 

關於如何做到這一點有什麼建議?我通過PHP添加地址。

在此先感謝。

+0

拒絕的請求得到一個403錯誤,如果403的ErrorDocument是沒有正確配置(如你的*可能*),另外還有500內部服務器錯誤。 – hakre

+0

即使用戶被拒絕,我如何配置事件以保證我的403仍在服務?這是一個雞/蛋現在:)看到下面的一些帖子,特別是我對肖恩的迴應。 – dmolavi

+0

只需正確配置您的403錯誤文檔。暫時將您自己的IP添加到拒絕服務中並進行測試。通常使用php文件並不是問題。 – hakre

回答

1

你有兩種方式:

  1. 的ErrorDocument 403 http://www.yourdomain.com/403.php
  2. 的ErrorDocument 403 「!你去不歸」

當然,第一個會重定向用戶!
如果您的網站上有特定的文件格式(例如.php,.txt,.xml,.htm,...),您可以使用這個文件但我不推薦它!

<Files ~ "\.(inc|sql|.php|.html)$"> 
    order allow,deny 
    allow from all 
    deny from 127.0.0.1 
</Files> 

更新: 作爲Sean Kimball提到你可以使用重寫MOD(當然這是可能的,這是Apache)的

RewriteCond %{REMOTE_ADDR} ^127\.0\.0\.1$ 
RewriteRule (.*) 403.php 
+0

我認爲我將不得不使用你的第二個建議,因爲403錯誤的第一個結果同時檢索403文檔:)編輯您的編輯:請參閱我對Sean回覆的回覆。 – dmolavi

+0

ErrorDocument 403「去吧,不要回來!」這適用於我!我只需要顯示一個簡單的消息:) – dmolavi

0

我認爲重寫規則會更合適 - 雖然我不是100%確定您可以基於IP地址重定向。你需要檢查mod_rewrite文檔。

+0

我最初嘗試過,但你不能輕鬆地插入到文檔與PHP 。我必須將整個文件讀入數組中,在中間添加新條目,以便重寫行不會被覆蓋。如果你知道一些其他的方法可以輕鬆做到這一點,我全部耳朵(或......眼睛......): – dmolavi

相關問題