“不需要 ip”.htaccess 在單一 ip 中不起作用

“不需要 ip”.htaccess 在單一 ip 中不起作用

我在阻止 .htaccess 中的 IP 時遇到問題

我已經把

Require not ip 192.168.20.218

它可以工作,但它會阻止整個網絡,而不是阻止單一 IP。

有人可以解決這個問題嗎?

我正在使用 Ubuntu 14.04.3 LTS 在 Apache 2.4 上運行

更新:場景是這樣的,我在我的電腦上使用IP 192.168.20.218,我試著做一個測試來阻止這個IP位址,我嘗試過:

<RequireAll> 
Require all granted 
Require not ip 192.168.20.218 
</RequireAll>

這應該會阻止我的訪問,但它仍然允許我訪問該頁面。如果我取出它,Require all granted它就會阻塞整個網路。

答案1

你不能使用否定的指令本身以授權存取。如中所述文件

指令的結果Require可以透過使用not選項來否定。與其他否定授權指令一樣<RequireNone>Require指令被否定時,它只能失敗或傳回中性結果,因此可能永遠不會獨立授權請求

您需要執行類似以下操作:

<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>

因此,您允許所有人並排除特定的 IP 位址。

<RequireAll>顧名思義,容器要求必須滿足所有包含的指令。

答案2

我遇到了這個問題。我忘了我有一個 nginx 反向代理。進入apache的IP是來自nginx的反向代理IP。相反,我必須在包含真實 IP 的反向代理中設定自訂標頭,然後在 .htaccess 中檢查此標頭,而不是檢查 ip。

相關內容