2009-09-08 7 views
2

Je suis à la recherche d'un moyen de filtrer des pages spécifiques par IP et de les rediriger sur une page différente.mod_Rewrite: Filtrer des pages spécifiques par IP et les rediriger

Le code ci-dessous ne fonctionnait pas correctement.

RewriteCond %{REMOTE_ADDR} ^/192.168.10.* 
RewriteCond %{REQUEST_URI} ^/support 
RewriteRule ^/.* http://www.yahoo.com/gone [R,NE] 

Une fois que le lien http://example.com/support a été consulté et ils sont sur le 192.168.10. * Bloc, il doit aller à la page d'exemple de yahoo.com.

Mais, comme je l'ai dit. Ça n'a rien fait. Des idées pour lesquelles cela n'a pas fonctionné correctement?

+0

RewriteCond% {REMOTE_ADDR}^192.168.10 *
Essayez cette – yoda

Répondre

4

comme dit yoda dans le commentaire, ne mettez pas un / devant l'adresse IP. également, le . dans le modèle doit être \., car il s'agit d'une expression régulière compatible perl. vous pouvez aussi ajouter un [NC], aucun cas (sensible), à ​​la requête uri. enfin, vous pouvez fusionner la deuxième condition avec le RewriteRule. tous ensemble.

RewriteCond %{REMOTE_ADDR} ^192\.168\.10\..* 
RewriteRule ^/support http://www.yahoo.com/gone [R,NE,NC] 
+0

Merci! Si je veux une adresse IP spécifique, est-ce que cela fonctionnerait? RewriteCond% {REMOTE_ADDR}^192 \ .168 \ .10 \ .148 * Dois-je conserver l'astérisque (*)? –

+0

aucun astérisque à la fin - cela correspondrait également à 192.168.10.14 (astérisque signifie zéro ou plusieurs correspondances du précédent '8'). mieux faire^192 \ .168 \ .10 \ .148 $ (l'ancrage $ signifiant à la fin de la ligne). –

+1

Pour une adresse IP fixe, vous n'avez pas du tout besoin d'expressions régulières, juste '= 192.168.10.148'. –

Questions connexes