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 :

impossible de renvoyer un code 404


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut impossible de renvoyer un code 404
    bonjour,
    j'ai fait un site dynamique php/mysql avec réécriture d'url.
    Chaque page est stockée dans la base de données, et est appelée par deux paramètres : catégorie et url. Le problème c'est que si je mets à la racine du site n'importe quel paramètre (ex: /?xyz=234) ça charge la page d'accueil alors que cela doit renvoyer un code 404. Merci de votre aide. Le site en question : http://chinesecarweb.com

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    D'accord mais si on pouvait savoir aussi comment, concrètement, vous avez mis cette solution en place, ça serait tout de suite beaucoup plus facile d'en rechercher la cause, non ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut
    voici le fichier .htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    RewriteEngine on
    RewriteBase /
     
    RewriteCond %{HTTP_HOST} ^www\.chinesecarweb\.com$
    RewriteRule ^(.*)$ http://chinesecarweb.com/$1 [R=301,L]
     
    RewriteRule ^(.*)/(.*)/$ post/post.php?cat=$1&sefurl=$2
    J'espère que c'est suffisant merci.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Je ne suis pas certain d'avoir compris mais la partie query string, ne peut à elle seule, pas générer une erreur 404. Ce ne sont que des paramètres facultatifs (voire même superflus) fournis à une ressource. C'est l'absence même de la ressource qui provoque une erreur 404, rien d'autre.

    Donc ici il doit manquer des règles si vraiment vous souhaitez interdire ces cas et les gérer par une 404 (ce qui requiert, par la même occasion, une version 2 d'Apache car avec les versions antérieures les erreurs qu'il était possible de renvoyer à l'aide du module de réécriture étaient très restreint).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut
    Je pose cette question car le Googlebot fait des interrogation arbitraire pour explorer mon site. Il met par exemple après l'url de base ?p=123 pour "essayer" d'atteindre une page. C'est en observant les logs que j'ai découvert la chose.
    Je ne suis que débutant sur les url rewrite et je suis certain de ne pas le faire correctement. Question que manque-til pour rediriger vers une page spécifique ou renvoyer une erreur?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    C'est faisable mais ça risque d'être strict (cela voudrait dire que vous n'aurez jamais d'autres paramètres que cat et sefurl) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteCond %{QUERY_STRING} !^$
    RewriteCond %{QUERY_STRING} !^cat=[^&]+&sefurl=[^&]$
    RewriteRule .* - [R=404,L]
    (non testé, requiert une version 2.X, comme dit plus haut et à placer en dernier a priori)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 117
    Points
    117
    Par défaut
    La version d'apache de mon hébergeur est : Apache/1.3.34 Ben-SSL/1.55.
    En allant sur cette page :http://httpd.apache.org/docs/2.0/new_features_2_0.html
    je ne trouve rien sur mod_rewrite.. Pourquoi ça ne marcherait pas sur 1.X?
    ça n'a pas marché.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Parce que le module de réécriture, sous ces versions, était prévu (codé) pour n'accepter et gérer que le renvoi d'erreurs dont le code est situé dans la plage 300 (inclus) à 400 (exclus) - définis, par le protocole HTTP, pour les redirections.

Discussions similaires

  1. [Joomla!] [extcalendar] impossible de mettre du code php (HTML si)
    Par slim dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 25/07/2007, 15h44
  2. [Asm Editor] Impossible de compiler du code FASM
    Par _SamSoft_ dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 25/04/2007, 19h30
  3. Comment renvoyer un code retour?
    Par soulryo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/12/2006, 16h49
  4. Impossible de mettre du code dans <HEAD>
    Par sunshine33 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/06/2006, 11h31
  5. [débutant]impossible d'éxecuter avec Code::blocks!
    Par Antigonos Ier Gonatas dans le forum Code::Blocks
    Réponses: 6
    Dernier message: 31/05/2006, 19h53

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