IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Expression régulière pour redirection dans .htaccess


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Expression régulière pour redirection dans .htaccess
    Bonjour et bonnes fêtes à tous,

    je viens ici pour savoir si l'un d'entre vous pourrais m'aider au sujet d'une syntaxe particulière dans un fichier .htaccess. J'espère être dans la bonne rubrique.

    Voilà ce que je souhaite faire : rediriger toute une plage d'url vers une page particulière.

    La plage d'url que je souhaite redirigé a cette forme :

    Commence par index.php?
    puis contient 5 ou 6 nombres à la suite entre 0 et 9
    puis contient une lettre entre a et z
    exemple : index.php?24568p

    Apriori, je pense que c'est faisable. Mais j'avoue qu'après avoir passé un moment sur des tutoriels d'expressions régulières, j'ai du mal à mixer toutes les conditions nécessaires.

    Est-ce que quelqu'un ici verrait comment faire ?

    en vous remerciant

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    On m'a soufflé dans l'oreille que l'expression qui traduisait
    Commence par index.php?
    puis contient 5 ou 6 nombres à la suite entre 0 et 9
    puis contient une lettre entre a et z
    était

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^index.php?([0-9]{5,6})([a-z]{1})$
    j'ai donc ajouté ça dans mon .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^index.php?([0-9]{5,6})([a-z]{1})$ 404.html [R=301,L]
    mais ça ne fonctionne pas.

    Les urls de type index.php?12345a ne sont pas redirigées

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il faudrait effectuer une recherche sur le forum et/ou dans la FAQ car RewriteRule ne s'applique qu'à la partie chemin de l'URL. Pour tester toute autre partie, comme les paramètres (query string), il faut ajouter des conditions (RewriteCond) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^\d{5,6}[a-z]$
    RewriteRule ^index\.php$ 404.html [R=301,L]

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    merci !

    je vais chercher un peu sur le forum, et je vais essayer de voir ça rapidement

    je reviendrai ici pour vous faire part de mon succès ou de mon échec

    Gael

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour, à nouveau

    j'ai donc utilisé la règle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond     %{QUERY_STRING}         ^[0-9]{5,6}[a-z]$
    RewriteRule     ^index\.php$            /404.html        [NC,R=301,L]
    La redirection fonctionne, le seul hic restant est que ça ne me redirige pas vers l'url 404.html "propre", mais vers la page 404 qui reprend l'url pourrie du départ (ex : 404.html?15468a )

    Du coup, ça ne sert pas à grand chose, puisque j'ai toujours des urls dupliquées

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Si j'ai bien compris, forcez alors la suppression de la query string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^\d{5,6}[a-z]$
    RewriteRule ^index\.php$ /404.html? [NC,R=301,L]
    Parce que lorsque l'on ne touche pas à la query string dans l'"URL" de redirection, Apache la recopie et retransmet.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Yes ! super !

    je me doutais qu'il fallait "dire" à Apache de ne pas recopier les paramètre, mais c'est la manière de le dire que je ne parvenais pas à débusquer. Etr finalement, c'est tout simple !

    Un grand merci !

    j'espère que ça pourra servir à d'autres, si besoin

    Merci encore,

    Gael

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2014, 09h25
  2. Réponses: 4
    Dernier message: 21/10/2009, 10h17
  3. Réponses: 4
    Dernier message: 14/11/2008, 21h00
  4. Expressions régulières pour rechercher dans le code
    Par Davboc dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 20/11/2007, 11h03
  5. Expression Régulière pour float
    Par zebiloute dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo