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 500 mais rewriting activé


Sujet :

Apache

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut [URL rewriting] Erreur 500 mais rewriting activé
    Bonjour à tous,
    Venant de rejoindre le rangs des webmaster en herbe, je dois faire un site pour ma nouvelle boite (gg moi )

    J'ai donc des pages internet du style http://www.monsite.com/?pages=accueil, car mon index fait un include de accueil.php qui se trouve dans un dossier pages sur la racine (pages/accueil.php).

    je veux donc afficher l'adresse comme cela : http://www.monsite.com/accueil

    J'ai alors écrit dans mon htaccess (qui se trouve sur la racine du site avec l'index donc) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^(.*)$ /?pages=$1 [L]


    Donc j'ai voulu écrire que la variable page sera la suite du lien. Malheureusement ça ne fonctionne pas, erreur 500, donc une erreur de syntaxe ? J'ai contacté l'hébergeur qui m'a confirmé que le rewriting était activé sur le serveur. Alors peut être pourriez vous m'aider à comprendre où j'ai fait faux ?

    Je débute en rewriting et j'y connais pas grand chose

    Cordialement,
    Hadrien

  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
    Ca part en boucle infinie, en fait. Il faut que tu mettes une exception pour ne pas réécrire les scripts PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !\.(php)$
    RewriteRule ^(.*)$ /?pages=$1 [L]
    J'ai mis une syntaxe bizarre car (je te laisse le découvrir en testant d'abord cette syntaxe ) les images et .js, etc. seront également réécrites sur index.php et ton site n'affichera aucun style, aucune image, etc. Il faut donc également mettre une exception pour les .jpg, .css, etc. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !\.(php|css|jpg)$
    RewriteRule ^(.*)$ /?pages=$1 [L]
    Je te laisse compléter la liste des extensions à ne pas réécrire.

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    J'ai donc testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !\.(php|css|jpg|png|js)$
    RewriteRule ^(.*)$ /?pages=$1 [L]
    Et j'ai toujours cette erreur 500 si j'écris l'adresse peu importe comment. Est ce tout simplement ma façon de programmer le php/html qui ne serait pas correct et qui m'embarque dans des complexités alambiquées ?

    Pour éviter la redondance on m'a également conseiller d'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{QUERY_STRING} !pages=
    celui ci fonctionne en alternance, un coup le site s'affiche bien, un coup le css est introuvable et j'ai plus de style, mais pas d'erreur 500. j'vais mixer les deux voir ce que ça donne et de voir en quelles occasions le css ne se charge pas

    Edit : d'après le code source, mes link et script charge l'index au lieu du fichier css et javascript associé, c'est parce qu'il appliqué aussi le rewriting sur mes balises link et script dans le head (d'où ton code pour pas recharger le css etc ?)?

    Edit de derniere minute :

    J'ai écrit ça, ça charge bien le bon fichier css mais du coup tous les liens me ramene à la page d'accueil (page par défaut ds mon code php)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{QUERY_STRING} !pages=$
    RewriteCond %{REQUEST_FILENAME} !\.(css|jpg|png|js)$
    RewriteRule ^(.*)$ /?pages=$1 [L]

  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
    Ils ressemblent à quoi, tes liens (contenu des <a href> dans le code HTML reçu par le navigateur) ?

    Ca change quelque chose si tu mets explicitement /index.php?pages=$1 au lieu de simplement /?pages=$1 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)$ /index.php?pages=$1 [L]

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'ai écrit mes liens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="?pages=accueil">accueil</a>
    puis simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="accueil">accueil</a>
    qui semblait fonctionner car le css avait été déjà chargé quand j'ai mis à jour le htaccess, mais en rafraichissant à nouveau plus de css.
    J'ai changé mes liens en ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index.php?pages=accueil
    etc, et modifier le htaccess comme tu me la conseillé, et j'ai une erreur 500

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{QUERY_STRING} !pages=
    RewriteRule ^(.*)$ /?pages=$1 [L]
    Bon maintenant ça marche mais faut que je fasse moi même un headeur pour les erreur 404, ça fait pas un peu bricolage ?

  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
    Non, ça ne fait pas bricolage, c'est très courant, comme syntaxe.

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bon bah merci des conseils
    problème résolu

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

Discussions similaires

  1. Script en erreur 500, mais qui fonctionne !
    Par renaud26 dans le forum Web
    Réponses: 4
    Dernier message: 06/11/2011, 20h30
  2. [URL rewriting] Erreur 500
    Par Horus_39 dans le forum Apache
    Réponses: 4
    Dernier message: 21/03/2010, 16h11
  3. URL Rewriting => Erreur 500
    Par Valter dans le forum Apache
    Réponses: 4
    Dernier message: 03/10/2008, 17h06
  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