2013-07-11 53 views
0

使用的.htaccess我想從觀看以下任一頁面的塊3個IP地址:如何阻止某個IP地址看到一組網頁?

http://url.com/foo 
http://url.com/foo/bar 
http://url.com/foo/bar/foo 

所以foo和任何之後。我怎樣才能做到這一點?我似乎可以找到的是如何完全阻止一個IP地址,但沒有阻止它查看站點的某些部分。當他們訪問這些頁面時,我想向他們展示一個404錯誤。

回答

0

嘗試這種情況:

RewriteCond %{REMOTE_ADDR} ^111.111.111.111$ [OR] 
RewriteCond %{REMOTE_ADDR} ^222.222.222.222$ [OR] 
RewriteCond %{REMOTE_ADDR} ^333.333.333.333$ 
RewriteCond %{REQUEST_URI} ^/foo$ [NC,OR] 
RewriteCond %{REQUEST_URI} ^/foo/bar$ [NC,OR] 
RewriteCond %{REQUEST_URI} ^/foo/bar/foo$ [NC] 
RewriteRule .* - [R=404,L] 

這實現的條件:

IF(A或B或C)和(d或E或F) - >顯示404錯誤

我發以防萬一,以防萬一。

+0

我試過這個,但它不起作用:/ – Nadine

+0

@Nadine Hm,爲我工作。你能否消除%{REQUEST_URI}條件並讓我知道它是否有效?所以我們可以把問題分解成幾部分。 – user4035

+0

我會將您的答案標記爲正確,因爲我已經從代碼中獲得了答案。我把它放在我的.htaccess :) ty的錯誤位置 – Nadine

1

您只想阻止目錄/ foo /,因此在/ foo /中創建一個.htaccess文件(直觀上它只適用於/ foo /)。然後,使用相同的語法來阻止IP地址照常:

order allow, deny 
deny from 127.0.0.1 
allow from all 

我相信這將返回一個403 - 禁止。不知道你會如何去返回一個404(你可以只使用相同的頁面,403錯誤,你的404錯誤做的,這是不可能的用戶將檢查響應狀態代碼)

編輯:如果你以RewriteEngine On開頭,user4035的答案是否有效?

+0

這不會工作,因爲目錄不存在(URL被重寫)。 – Nadine

+0

你應該添加到你的問題。 – Trojan

+0

是的,謝謝你的幫助:) – Nadine