Existe-t-il une directive htaccess possible qui peut transmettre de manière transparente la requête d'index.php à index_internal.php si la requête provient d'une plage IP interne?htaccess demande de renvoi si adresse IP interne
0
A
Répondre
4
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\. [OR]
RewriteCond %{REMOTE_ADDR} ^10\.15\.
RewriteRule ^index\.php$ index_internal.php [R,NC,QSA,L]
Ce que cela fait: Démarrez le moteur mod_rewrite (vous avez peut-être déjà)
si (adresse IP du client commence par "192.168.1." [Ou]
adresse IP du client commence par "10.15".)
et le nom de la page est index.php ([n] ot [c ] ase sensitive), [r] edirect à index_internal.php, [q] uery [s] tring [a] ppend (ie index.php?foo=bar
devient index_internal.php?foo=bar
), [l] traitement de l'avant-toit.
Modifier si nécessaire pour les blocs d'adresse IP.
1
Quelque chose comme ça devrait le faire (évidemment changer l'adresse IP correspondant à votre réseau):
RewriteCond %{REMOTE_ADDR} ^192\.168\.
RewriteRule index.php index_internal.php
Si vous voulez un en-tête réelle puis le rendre RewriteRule index.php index_internal.php [L,R,QSA]
1
ok voici mon code (pas redirect) basé sur wikipedia's private network list
RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^10\. [OR]
RewriteCond %{REMOTE_ADDR} ^172\.[1-3]{1}\d{1}\. [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.
RewriteRule ^index\.php index_internal.php [NC,QSA,L]
Bonne idée! Attention cependant: tout ce qui se trouve dans la portée privée ne doit pas forcément se trouver dans votre réseau - par exemple, j'ai vu des configs où 10.1.255.255 était un réseau interne et 10.4.255.255 un autre réseau moins fiable via VPN. J'autoriserais seulement autant d'accès que nécessaire. – Piskvor
J'ai juste besoin de détecter si mon application Web est accessible via public ou en interne juste pour définir certaines constantes en particulier l'hôte de redirection pour notre application de connexion unique – ken