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] Conflit avec 2 règles


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut [URL rewriting] Conflit avec 2 règles
    Bonjour,

    Voilà, je n'arrive pas à faire coexister ces deux règles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^(.*)\.html$ $1.php [L]
    RewriteRule ^([^.?/]+)\.html$ page.php?p=$1 [L]
    Ces règles sont assez simples, la première transforme toutes les pages .php en .html et la deuxième transforme l'url 'page.php?p=' en quelque chose de plus friendly.

    Lorsque je place, dans mon .htaccess, ces deux règles dans cet ordre, j'obtiens une erreur 404 avec la seconde règle.

    Je sais que j'ai cette solution mais je voudrais éviter de devoir mettre quelque chose devant l'url que je réécris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule page/(.*)\.html page.php?p=$1[L]

    Une idée? Merci

  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
    Citation Envoyé par Falcokeo Voir le message
    et la deuxième transforme l'url 'page.php?p=' en quelque chose de plus friendly.
    Euh... Tu es sûr de toi ? Regarde bien. Ta seconde règle est incluse dans la seconde, c'est pour ça qu'elle est ignorée.

  3. #3
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut
    Ah en effet, je me rend compte que l'url réécrit est le même pour les deux règles et c'est justement là mon souci. Mais alors, et sans doute ma question est un peu stupide, mais comment faire pour avoir des adresses virtuelles identiques issues d'adresses dynamiques différentes? Comme par exemple ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^([^.]+)\.html$ page.php?id=$1
    RewriteRule ^([^.]+)\.html$ article.php?id=$1
    Merci pour ta réponse

  4. #4
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut
    Bon, voilà où j'en suis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RewriteRule contact/$ contact.php
    RewriteCond %{REQUEST_URI} !welcome
    RewriteCond %{REQUEST_URI} !product
    RewriteRule ^([^.]+)/$ article.php?p=$1
    RewriteRule ^([^.]+)/$ page.php?p=$1
    Avec ces règles, j'obtiens bien le résultat voulu c-à-dire:
    /contact/ pour contact.php
    /hello-world/ pour article.php?p=hello-world
    /welcome/ pour page.php?p=welcome
    /product/ pour page.php?p=product

    Evidemment écrire dans le .htaccess le nom de chaque nouvelle page créé ce n'est pas l'idéal. Je pourrais réécrire dynamiquement à l'aide de PHP le fichier .htaccess mais ce serait vraiment pour chercher l'erreur 500

    Merci pour vos suggestions

  5. #5
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 19
    Par défaut
    Bon, en fait j'ai compris en regardant le .htaccess de WordPress que je n'arriverait pas à faire ce que je veux avec les règles de rewrite url d'Apache.
    Je voulais le même comportement de réécriture d'url de Wordpress mais comme Wordpress revois toutes les url virtuelles à la page index.php, j'ai compris que c'est dans cette page que le traitement s'opérait.

    J'aurais dû voir cela plus tôt, merci Mac pour ta réponse en tout cas.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2010, 10h06
  2. [URL Rewriting] Problème avec plusieurs règles
    Par Pistol Kiss dans le forum Apache
    Réponses: 1
    Dernier message: 17/02/2009, 09h58
  3. [URL Rewriting] problème sur une règle
    Par Mike91 dans le forum Apache
    Réponses: 1
    Dernier message: 13/09/2007, 16h20
  4. Réponses: 3
    Dernier message: 31/07/2007, 16h40
  5. [URL Rewriting] problème avec sous domaine
    Par Booyakha dans le forum Apache
    Réponses: 1
    Dernier message: 31/07/2007, 16h31

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