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 :

Appliquer 2 règles d'url-rewriting sur 1 url


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 9
    Par défaut Appliquer 2 règles d'url-rewriting sur 1 url
    Bonjour,

    Je souhaite savoir s'il est possible d'appliquer 2 règles de ré-écriture sur une seule et même url, et si oui comment faire.

    Mon cas (simplifié):

    J'ai plusieurs noms de domaines qui pointent vers 1 seul et même espace Web. Dans cet espace Web je souhaite d'abord repérer le nom de domaine pour construire une URL sur laquelle je souhaite ensuite appliquer une autre règle. Repérer le nom de domaine ça c'est très facile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
    RewriteRule ^(.*)$ mon-domaine/$1 [L]
    Par contre pour appliquer une autre règle à l'url ainsi obtenue, et avec le même .htaccess, c'est plus dur. Je voudrais par exemple ensuite appliquer une règle telle que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^mon-domaine/vos_ventes.html$ your_sales.php [L]
    A ceux qui me demanderont pourquoi je ne fais pas 1 règle de ré-écriture par couple "nom de domaine"/"script appelé", je répondrai simplement que le nombre de couples "nom de domaine"/"script appelé" est au final trop grand

    D'avance merci pour votre aide

  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
    Par défaut
    En fait, c'est la première règle (le filtre du RewriteRule) qui est beaucoup trop générique : .* matche tout, y compris le résultat de la réécriture (mon-domaine/$1), donc tu pars en boucle infinie. Précise donc un peu mieux ce filtre pour ne réécrire que ce qu'il faut (.*\.html par exemple). Ensuite retire le [L] de la première règle ou mets la seconde règle avant la première (si tu conserves le [L]) pour qu'elle soit prise en compte. Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteRule ^mon-domaine/vos_ventes.html$ your_sales.php [L]
     
    RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
    RewriteRule ^(.*\.html)$ mon-domaine/$1 [L]
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteCond %{HTTP_HOST} ^www.mon-domaine.com$
    RewriteRule ^(.*\.html)$ mon-domaine/$1
     
    RewriteRule ^mon-domaine/vos_ventes.html$ your_sales.php [L]
    Je ne suis pas sûr de moi à 100%, donc à tester et corriger éventuellement.

Discussions similaires

  1. Redirection URL Rewrité vers nouvelle URL rewrité
    Par Dlteck2000 dans le forum Apache
    Réponses: 5
    Dernier message: 20/01/2013, 18h29
  2. URL rewriting sur de URL contenant un #
    Par Invité dans le forum Apache
    Réponses: 3
    Dernier message: 28/05/2010, 15h30
  3. [URL Rewriting] sur téléchargement de fichiers
    Par Dr.Wily dans le forum Apache
    Réponses: 44
    Dernier message: 20/05/2008, 14h40
  4. Réponses: 1
    Dernier message: 29/02/2008, 17h54
  5. [URL Rewriting] Infos sur l'URL Rewriting
    Par Thomad dans le forum Apache
    Réponses: 2
    Dernier message: 16/09/2007, 00h13

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