Блокировка IP-адресов в Apache - PullRequest
1 голос
/ 12 октября 2009

Мне нужно заблокировать доступ ко всему сайту через IP-адрес, кроме URL / API, который должен быть открыт для всех.

Я сейчас использую ...

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

блокирует доступ к URL, начиная с / admin. Но я хочу заблокировать все URL, кроме тех, которые запускаются /api.

Chris

Ответы [ 2 ]

2 голосов
/ 12 октября 2009
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 голосов
/ 12 октября 2009

Ну, вы можете сначала заблокировать весь сайт, а затем просто разрешить / api.

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

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

Извините, я не смог проверить это из-за конфигурации XAMPP на моем ПК. Молись, это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...