Forum Programmation.web Réécriture d'URL : rediriger toutes les adresses ne correspondant à aucune règle

Posté par  .
Étiquettes : aucune
0
18
juin
2009
Bonjour,

je souhaite rediriger toutes les requêtes vers un site, sauf certaines.

Ces "certaines" requêtes sont celles que je réécris actuellement à l'aide de règles adéquates :

RewriteRule ^foo$ /?dev=null [L]
RewriteRule ^bar$ /?hello=world [L]
etc ...

Je veux rediriger toutes les autres requêtes vers une page spécifique.

Comment faire, sans écrire une règle du genre :

RewriteRule ^sicépaca && nica && nicanonplus$ /specifique

En effet, les sicépaca sont nombreux.

Merci d'avance !
  • # ...

    Posté par  . Évalué à 3.

    Vu que t'as mis le [L] à la fin de toutes les autres, rajouter un :
    RewriteRule ^.*$ /specifique [R]
    à la fin ne suffirait-il pas ?
    • [^] # RewriteRule ^.*$

      Posté par  . Évalué à 2.

      Non !
      C'est la première chose que j'ai essayé, mais du coup cela provoque une boucle de redirection :

      Le site crée une redirection de telle sorte que la requête ne peut jamais aboutir. (dixit Firefox)
      • [^] # Re: RewriteRule ^.*$

        Posté par  . Évalué à 4.

        Hum, le problème est que "^.*$" matche aussi "/specifique", d'o ùla redirection en boucle.
        Il faut ajouter une RewriteCond pour ignorer le chemin vers lequel tu redirige, ou ne pas faire une redirection [R] au niveau HTTP (c'est à dire demander au navigateur de charger une autre page) mais laisser le comportement par défaut qui va simplement renvoyer une autre page, mais sans que l'URL change du point de vue du navigateur.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.