2009-10-12 74 views
1

我需要通過IP地址阻止對我的整個站點的訪問,除了應該向所有人開放的url/api。我目前使用在IP上的IP阻止URL

...

<LocationMatch /admin> 
    Order Deny,Allow 
    Deny from all 
    Allow from [MY IP] 
</LocationMatch> 

這將阻止訪問以/管理員的網址。但是我想阻止所有除start/api之外的url。

克里斯

回答

0

那麼你可以先封鎖整個網站,然後簡單地允許/ API。

<LocationMatch /> 
    Order Deny,Allow 
    Deny from all 
    Allow from [MY IP] 
</LocationMatch> 

<LocationMatch /api> 
    Order Deny,Allow 
    Allow from all 
</LocationMatch> 

對不起,由於XAMPP配置在我的電腦上,我無法測試它。祈禱它有效。

+0

感謝但這並沒有工作,它阻止了一切。 – 2009-10-12 15:15:34

+0

您是否嘗試切換規則的順序? – deizel 2009-10-12 17:28:46

2
RewriteEngine On # (only needs to happen once in .htaccess files. 

RewriteBase/
RewriteCond %{REMOTE_ADDR} !^10\.103\.18\.104  # <--YOUR IP HERE 
RewriteCond %{REQUEST_URI} !^/api # page or directory to ignore     
RewriteRule ^(.*)$ http://example.com/no_access.html [R=401] # where to send blocked requests 
+0

不能得到這個工作。我得到一個錯誤401身份驗證要求。 – 2009-10-12 15:13:11

+0

重寫需要使用附加模塊。仍然會更好地使用核心。 – mauris 2009-10-13 09:09:28

+0

@Chris - 如果您的IP不匹配,我提供的代碼將返回401到瀏覽器。 @Mauris - 的確如此。但並非所有用戶都可以訪問核心配置文件。並重寫目錄級別的作品 妥協? 使用位置鎖定整個站點(用'/'替換'/ admin') 使用附加位置塊解鎖/ api(反向拒絕,允許全部) – Eddie 2009-10-20 12:20:47