1 votes

Erreur 403 provenant de Erreur 403 ErrorDocument

J'ai le script de configuration suivant dans mon installation Apache 2.4.7 :

    Options Indexes FollowSymLinks
    AllowOverride All

        Require all granted
        Require not ip ip.range.A ip.range.B

    RewriteEngine On
    RewriteRule ^faq/(\w+)/(\d+)/?$ faq.php?code=$1&num=$2 [NC]
    ErrorDocument 403 /www/faq.php?code=web&num=403

Et, je reçois cette erreur lorsque j'essaie de voir une page en utilisant l'une des adresses IP bloquées :

De plus, une erreur 403 Forbidden a été rencontrée lors de la tentative d'utilisation d'un ErrorDocument pour gérer la demande.

Comme je veux fournir deux types de 403 aux clients entrants ; je dois rediriger les utilisateurs restreints par les plages d'IP A et B pour leur montrer la page faq/WEB/403/.

Y a-t-il un moyen de bloquer l'accès aux utilisateurs avec ces IP et de leur montrer ma page personnalisée ErrorDocument ?

J'ai essayé d'utiliser ce qui suit à la place de la balise requireAll (comme défini dans la directive RewriteCond) :

RewriteCond %{REMOTE_HOST}  ^ip.range.A  [OR]
RewriteCond %{REMOTE_HOST}  ^ip.range.B
RewriteRule /faq/WEB/403/ [L,R]

mais en vain. Les utilisateurs ont pu accéder librement aux pages dans ce dernier cas.

Le fichier de configuration actuel est le suivant (et aucun utilisateur n'est bloqué dans l'accès aux pages web) :

    Options Indexes FollowSymLinks
    AllowOverride All
    RewriteEngine On
    RewriteRule ^faq/(\w+)/(\d+)/?$ faq.php?code=$1&num=$2 [NC]
    RewriteCond %{REMOTE_HOST}  ^ip.range.A  [OR]
    RewriteCond %{REMOTE_HOST}  ^ip.range.B
    RewriteRule /faq/WEB/403/ [L,R]

1voto

Pour cette erreur :

De plus, une erreur 403 Forbidden a été rencontrée lors de la tentative d'utilisation d'un ErrorDocument pour gérer la requête.

Vous protégez le répertoire /www. Comme le fichier 403 est également dans ce répertoire, il n'est pas servi car l'accès à ce contenu est interdit à l'utilisateur. Vous devez mettre votre page 403 dans son propre répertoire qui n'appartient pas à /www.

En ayant deux pages distinctes en fonction de l'IP source, je ne suis pas sûr que vous puissiez le faire uniquement avec la configuration d'Apache. ErrorDocument est une commande "spéciale" qui interrompt le flux normal d'Apache. Une meilleure façon de le faire serait de le faire en PHP ou dans n'importe quel langage côté serveur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X