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 :

[URL rewriting] Rediriger toutes les URL sauf une avec RewriteCond


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut [URL rewriting] Rediriger toutes les URL sauf une avec RewriteCond
    Bonjour,

    J'ai un problème pour la mise ne place d'une règle négative sur une redirection.

    Je souhaiterais pour commencer arriver à rediriger toutes les pages d'un site sauf celle qui s'intitule "une-page-de-test" et placée à la racine du site.

    Voici la règle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteCond %{REQUEST_URI} !^/une-page-de-test$
    RewriteRule ^(.*)$ http://mon-site.com [L,R=301]
    Cette redirection fonctionne mais la condition n'est pas prise en compte.
    La page http://mon-site.com/une-page-de-test est aussi redirigée ce que je ne souhaite pas.

    Pour être sur de mon coup, j'ai aussi testé l'inverse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteCond %{REQUEST_URI} ^/une-page-de-test$
    RewriteRule ^(.*)$ http://mon-site.com [L,R=301]
    (uniquement la page une-page-de-test).
    Cette dernière fonctionne parfaitement, seul la page "une-page-de-test" est redirigée.

    Le problème se produit dès le moment où il y a la condition négative : !^

    Est-ce que quelqu'un pourrait m'aider à résoudre ce problème? Merci d'avance!

    Clément

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu as vidé le cache de ton navigateur entre chaque test ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    Oui, j'ai désactivé le système de cache de mon navigateur (Chrome)

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu peux donner le .htaccess complet, s'il te plaît ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    J'ai trouvé le problème!

    Voici déjà le code du test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <IfModule mod_rewrite.c>
      RewriteEngine on
     
     
      RewriteCond %{REQUEST_URI} !^/une-page-de-test$
      RewriteRule ^(.*)$ http://domaine.com [L,R=301]
     
      RewriteCond %{REQUEST_URI} ^/une-page-de-test$
      RewriteRule ^(.+)$ index.php?q=$1 [L,QSA]
     
    </IfModule>
    En faite le problème n'est pas la redirection, c'est juste que "une-page-de-test" n'est pas une véritable page mais une url rewritée donc au moment de la réécriture la redirection fonctionne puisque la page devient: index.php?q=une-page-de-test

    Il faut en déduire que le fichier htaccess et lu de haut en bas puis de bas en haut??? Bizzard....

    J'ai fais le test comme ceci est je confirme que ça marche bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <IfModule mod_rewrite.c>
      RewriteEngine on
     
     
      RewriteCond %{REQUEST_URI} !^/une-page-de-test$
      RewriteCond %{QUERY_STRING} !^/q=une-page-de-test$
      RewriteRule ^(.*)$ http://domaine.com [L,R=301]
     
      RewriteCond %{REQUEST_URI} ^/une-page-de-test$
      RewriteRule ^(.+)$ index.php?q=$1 [L,QSA]
     
    </IfModule>
    Y a t'il une solution plus pro?

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par clement106 Voir le message
    Il faut en déduire que le fichier htaccess et lu de haut en bas puis de bas en haut???
    Pas du tout, il est juste lu plusieurs fois jsqu'à aboutir à une URL qui n'est plus réécrite (ou pas).

    Et non, il n'y a pas de solution "plus pro", tu n'as pas le choix, en fait.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    Merci pour ta réponse et ces précisions!

    C'est un peu tordu tout de même mais quesqu'on est content quand ça marche

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

Discussions similaires

  1. [URL rewriting] Rediriger toutes les images
    Par Squalthor dans le forum Apache
    Réponses: 9
    Dernier message: 04/01/2013, 11h08
  2. Réponses: 7
    Dernier message: 27/04/2012, 15h29
  3. URL Rewriting pour toutes les pages
    Par Paniez dans le forum Apache
    Réponses: 7
    Dernier message: 29/12/2011, 19h16
  4. Rediriger toute les URL vers index.php
    Par alex61 dans le forum Apache
    Réponses: 3
    Dernier message: 10/03/2011, 12h46
  5. Réponses: 2
    Dernier message: 08/03/2011, 17h43

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