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] erreur RewriteRule html->php


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 32
    Points
    32
    Par défaut [URL Rewriting] erreur RewriteRule html->php
    Bonjour,

    Je me suis plongé depuis peu dans l'url rewriting car j'ai bientôt un projet de site dynamique a refaire.
    Le site existe déjà et certaines pages sont déjà référencées. Le site tourne sous un environnement lamp.

    Le site étant plutôt simple au niveau des rubriques, je compte développer le site à partir d'une page index.php dans laquelle je passerai en variable le nom de la rubrique.
    En théorie, cela devrait me permettre de créer le nom de la page et de créer ma requête en même temps pour afficher le contenu.

    J'ai utilisais ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ([^.]+)\.html$ /index.php?page=$1 [L]
    Celui ci fonctionne très bien. Cependant si je change l'extension html en php, (RewriteRule ([^.]+)\.php$ /index.php?page=$1 [L] ) la page ne s'affiche plus. J'ai un message d'erreur m'indiquant que la redirection de la page est incorrecte !!

    Ayant déjà des pages de référencé en php cela me pose un vrai problème si je dois partir avec une extension .html

    Si quelqu'un avait une idée pour résoudre ce problème cela me serait fort utile.

    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Oui, c'est normal, ça boucle : tu réécris vers une URL en .php qui valide le masque de ta RewriteRule. Contrairement à ce qu'on croit souvent, L n'interrompt pas définitivement le processus de réécriture d'URL : il arrête seulement la boucle en cours. Comme je l'ai expliqué ici, ta réécriture déclanche une redirection interne qui va être de nouveau analysée. En fait, mod_rewrite ne va s'arrêter que lorsqu'il "aura convergé" vers une URL stable. Donc comme dans la discussion, la solution consiste à ajouter un RewriteCond pour exclure index.php de la réécriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{REQUEST_URI} !/index.php
    RewriteRule ([^.]+)\.php$ /index.php?page=$1 [L]

    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
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    Salut,

    Merci pour la solution et ton explication, cela fonctionne comme je le souhaite maintenant.

    Merci

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 03/07/2010, 20h23
  2. Réponses: 4
    Dernier message: 25/08/2009, 14h47
  3. [URL Rewriting] erreur, mais où ?
    Par planete dans le forum Apache
    Réponses: 1
    Dernier message: 11/05/2008, 21h16
  4. [URL Rewriting] erreur avec mod rewrite
    Par deny dans le forum Apache
    Réponses: 5
    Dernier message: 14/01/2008, 15h37
  5. url rewriting erreur 500
    Par kimcharlene dans le forum Apache
    Réponses: 1
    Dernier message: 05/06/2007, 17h57

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