2009-10-12 7 views
1

Je dois bloquer l'accès à l'intégralité de mon site via l'adresse IP, à l'exception de l'URL/API qui devrait être ouverte à tous.IP bloquant les URL sur Apache

J'utilise actuellement ...

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

ce bloque l'accès urls commençant par/admin. Mais je veux bloquer toutes les URL sauf celles qui commencent/api.

Chris

Répondre

0

Eh bien, vous pouvez d'abord bloquer tout le site, puis simplement autoriser/api. Désolé, je ne pouvais pas le tester en raison de la façon dont XAMPP est configuré sur mon PC. Priez que cela fonctionne.

+0

Merci, mais cela n'a pas fonctionné, il a tout bloqué. –

+0

Avez-vous essayé de changer l'ordre des règles? – deizel

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

Impossible de faire fonctionner cela. J'obtiens une erreur 401 Authentification requise. –

+0

La réécriture nécessite l'utilisation d'un module supplémentaire. serait toujours préférable d'utiliser le noyau. – mauris

+0

@Chris - le code que j'ai fourni renvoie un 401 au navigateur si votre adresse IP ne correspond pas. @Mauris - c'est vrai. Mais tous les utilisateurs n'ont pas accès au fichier de configuration de base. et réécrire fonctionne au niveau du répertoire Compromis? Utiliser l'emplacement pour verrouiller l'ensemble du site (remplacer '/ admin' par '/') Utiliser un bloc d'emplacement supplémentaire pour déverrouiller/api (refuser l'accès, autoriser tous les) – Eddie

Questions connexes