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 provoque une erreur 404


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Points : 34
    Points
    34
    Par défaut url rewriting provoque une erreur 404
    Bonjourr,

    Je rencontre un petit souci d'url rewriting.

    Je veux réécrire l'url http://www.monsite.com/offres-emploi...=paris&num=123
    en http://www.monsite.com/offres-emploi-paris-123.html, mais cela produit une erreur 404 quand je clique sur la seconde url, celle réécrite) et je ne parviens pas à voir d'où peut venir l'erreur dans mes règles de réécriture.

    Voici la règle dans mon fichier .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^offres-emploi-([a-z]+)-([0-9]+)\.html$  http://www.monsite.com/offres-emploi-recherche?nom=$1&num=$2  [L]
    et mon .htaccess complet (dans lequel il y a bien sûr des règles de réécriture pour d'autres pages) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Options +FollowSymLinks
    #IndexIgnore */*
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^monsite\.com$ [NC]
    RewriteRule ^(.*)  http://www.monsite.com/$1  [QSA,L,R=301]
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]
    RewriteRule ^([a-z0-9-]+)-([0-9]+)\.html$  http://www.monsite.com/offre/$2  [L]
     
    # URL par commune
    RewriteRule ^offres-emploi-([a-z]+)-([0-9]+)\.html$  http://www.monsite.com/offres-emploi-recherche?nom=$1&num=$2  [L]
     
    ErrorDocument 403  http://www.monsite.com/404   
    ErrorDocument 404  http://www.monsite.com/404   
    ErrorDocument 500  http://www.monsite.com/404
    Je pense que mes règles de réécriture se marchent peut-être les unes sur les autres... D'une manière générale j'ai des url propres sans aucune extension (pas de .html ou de .php), par exemple http://www.monsite.com/contact

    Merci d'avance pour votre aide
    Modifié par cparizot (18 Jun 2013 - 20:11)

  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
    Je ne comprends pas tout : sans la réécriture, l'url avec les paramètres fonctionne-t-elle ?

    Et pourquoi fais-tu une redirection du navigateur ?

    Et qu'entends-tu par "clique sur la seconde url, celle réécrite" ? Où se trouve le lien sur lequel tu cliques et quel est "la valeur" ce lien ?

  3. #3
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Essaie d'insérer ta règle avant celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([a-z0-9-]+)-([0-9]+)\.html$  http://www.monsite.com/offre/$2  [L]
    parceque tu n'arrives jamais à ta nouvelle règle, c'est celle-là qui matche d'abord.

    comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Options +FollowSymLinks
    #IndexIgnore */*
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^monsite\.com$ [NC]
    RewriteRule ^(.*)  http://www.monsite.com/$1  [QSA,L,R=301]
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L,QSA]
    # URL par commune
    RewriteRule ^offres-emploi-([a-z]+)-([0-9]+)\.html$  http://www.monsite.com/offres-emploi-recherche?nom=$1&num=$2  [L]
     
    #URL globale
    RewriteRule ^([a-z0-9-]+)-([0-9]+)\.html$  http://www.monsite.com/offre/$2  [L]
     
     
     
    ErrorDocument 403  http://www.monsite.com/404   
    ErrorDocument 404  http://www.monsite.com/404   
    ErrorDocument 500  http://www.monsite.com/404

Discussions similaires

  1. URL rewriting qui me donne une erreur 404
    Par eric41 dans le forum Apache
    Réponses: 3
    Dernier message: 01/08/2010, 20h34
  2. Réponses: 2
    Dernier message: 29/11/2007, 18h41
  3. Select Case provoque une erreur
    Par defluc dans le forum SQL
    Réponses: 6
    Dernier message: 14/08/2005, 23h59
  4. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

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