[ Apache ] ErrorDocument, résultat différent IE / moz ...

ErrorDocument, résultat différent IE / moz ... [ Apache ] - HTML/CSS - Programmation

Marsh Posté le 22-06-2004 à 17:56:23    

Bonjour,
 
je cherche basiquement à rediriger TOUTES les urls d'un site vers une seule et unique page.  
 
exemple:
 
1 - je tape l'url suivante
hxxp://www.monsite.com/news/2004/mars/17/
 
NB: il n'existe pas de repertoire /news/2004/mars/17/ à la racine de mon site.
 
2 - je souhaite rediriger cet appel vers une page "index.php" situé à la racine du site. Je place donc un ".htaccess" à la racine de celui ci. Il contient les lignes suivantes

ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
Options -Indexes


 
3 - ma page "index.php" contient le code suivant

Code :
  1. <?
  2.   echo $_SERVER["REQUEST_URI"];
  3. ?>


Elle me permettra d'afficher l'url initialement appellée et de vérifier que tt c'est bien passé.
 
Ca c'est la théorie, mais j'ai du mal... avec IE, avec lequel on peut dire que ça ne marche pas du tout. Je ne comprends pas comment il peut y avoir de telles différences dans l'interpretation d'HTTP... Et c'est pas faute d'avoir retourné la doc d'apache, et d'avoir essayé toute une combinaison de syntaxes.
 
A titre de test j'ais déposé une petite page qui réponds au déscriptif ci-dessus.
 
http://kursk.free.fr/powa/voici/un/test/qui/marche
 
qui devrais en toute théorie vous afficher une page avec l'URI demandée.


Message édité par stb le 22-06-2004 à 17:59:37
Reply

Marsh Posté le 22-06-2004 à 17:56:23   

Reply

Marsh Posté le 22-06-2004 à 18:19:05    

C'est quoi le souci, tout fonctionne !!!

Reply

Marsh Posté le 22-06-2004 à 18:21:12    

bah ça me rassure, ça veut dire que mon IE foire... pfiou.
 
je commençais à devenir fou, mais je me demande d'ou ça peux bien venir ?

Reply

Marsh Posté le 22-06-2004 à 18:22:11    

Cela n'a rien à voir avec IE normalement. Le souci est ailleurs

Reply

Marsh Posté le 22-06-2004 à 18:27:16    

T'en fais pas je suis pas totalement débile, je me doute bien qu'Apache n'interfère "normalement" pas avec aucun browser. Si tu me dis que ça marche, c'est parfait. Mais n'ayant pas put tester avec un autre IE que le mien, je me demandais si ça ne prenais pas racine dans une interpretation différente d'HTTP (redirection notament).
 
enfin bref, jsuis rassuré :D parce que ça avait beau être évident, je commençais à douter...

Reply

Marsh Posté le 22-06-2004 à 18:29:26    

stb a écrit :

T'en fais pas je suis pas totalement débile


 
Qui a osé le penser ?  :D

Reply

Marsh Posté le 22-06-2004 à 18:32:49    

T509 a écrit :

Qui a osé le penser ?  :D


ya tellement de question du style comment j'ouvre un popup - fait un tableau, en php, que ya parfois de quoi se mefier :D
 
 
bah tu vois, j'avais "oublié" que j'avais un vieux PC dans l'entrée.
Et ça ne marche pas :cry: !
 
je me tape un beau "HTTP 404 Non trouvé" ...
 
ça marche vraiment chez toi ???  :heink:  
 
plize d'autres avis
 


Message édité par stb le 22-06-2004 à 18:42:04
Reply

Marsh Posté le 22-06-2004 à 18:40:00    

oui cela fonctionne et très bien puisque j'ai aussi joué à la main avec l'url
 
Ton truc c'est pour émuler l'url rewriting chez free ?
Tu n'as pas envie de passer chez un véritable hébergeur pour cela et profiter de + de souplesse ?

Reply

Marsh Posté le 22-06-2004 à 18:42:50    

j'ecirs un petit truc qui doit marcher partout, et free est assez incontournable en france....

Reply

Marsh Posté le 22-06-2004 à 21:39:34    

Le problème, c'est IE. Si la page d'erreur renvoyée par le serveur est trop petite, il va afficher son propre message d'erreur au lieu de la réponse du serveur (c'est configurable dans IE, donc c'est pas forcément vrai partout)
2 solutions :

  • Renvoyer un code 200 au lieu du 404
  • Renvoyer une page assez grosse (en ajoutant au besoin des commentaires dedans)


À mon avis, la première solution est de loin la meilleure (ça n'a pas de sens de renvoyer un 404 alors que l'URL est valide)

Reply

Marsh Posté le 22-06-2004 à 21:39:34   

Reply

Marsh Posté le 22-06-2004 à 22:00:58    

Ok le coup d'augmenter artificiellement la taille marche... mais pkoi cette option plus que bizarre, ça ne veut rien dire, il aurai dut me signaler une 204 ou une 206 ?
 
merci en tout cas :jap:

Reply

Marsh Posté le 22-06-2004 à 22:06:45    

J'ai découvert ce truc en regardant les messages d'erreur renvoyés par Resin :

Citation :


<title>403 Forbidden</title>
<h1>403 Forbidden</h1>
<p /><hr />
<small>
Resin 2.1.13 (built Thu Apr  1 10:57:42 PST 2004)
</small>
 
 
 
 
<!--
   - Unfortunately, Microsoft has added a clever new
   - "feature" to Internet Explorer.  If the text in
   - an error's message is "too small", specifically
   - less than 512 bytes, Internet Explorer returns
   - its own error message.  Yes, you can turn that
   - off, but *surprise* it's pretty tricky to find
   - buried as a switch called "smart error
   - messages"  That means, of course, that many of
   - Resin's error messages are censored by default.
   - And, of course, you'll be shocked to learn that
   - IIS always returns error messages that are long
   - enough to make Internet Explorer happy.  The
   - workaround is pretty simple: pad the error
   - message with a big comment to push it over the
   - five hundred and twelve byte minimum.  Of course,
   - that's exactly what you're reading right now.
   -->
 

Reply

Marsh Posté le 22-06-2004 à 22:10:35    

pfff nawak! ralalah, cqu"on ferais pas pour vendre un serveur pourrave ;p
 
dans le cas qui me concerne je me demande meme si les page d'erreur qu'ie intercale lui même n'en était tout betement pas la cause.
 
en tout cas un grand merci, jvais enfin pouvoir aller bidouiller .werkzeug ^^

Reply

Marsh Posté le 22-06-2004 à 22:24:04    

Pense quand même à renvoyer un code 200. Les 4xx sont réservés aux erreurs, donc quand le traitement s'est bien passé, il faut absolument envoyer un 200. Ça évitera définitivement ce genre de problème...
 
PS : je viens de revoir la RFC 2616 (HTTP), et en ce qui concerne les messages d'erreur, il est dit : "User agents SHOULD display any included entity to the user". Autrement dit, c'est recommendé d'afficher le message du serveur, mais pas obligatoire.

Reply

Marsh Posté le 22-06-2004 à 23:12:03    

Bufff a écrit :

Le problème, c'est IE. Si la page d'erreur renvoyée par le serveur est trop petite, il va afficher son propre message d'erreur au lieu de la réponse du serveur (c'est configurable dans IE, donc c'est pas forcément vrai partout)
2 solutions :

  • Renvoyer un code 200 au lieu du 404
  • Renvoyer une page assez grosse (en ajoutant au besoin des commentaires dedans)


À mon avis, la première solution est de loin la meilleure (ça n'a pas de sens de renvoyer un 404 alors que l'URL est valide)


 
je ne savais pas ça. Merci de l'info. L'option en question est "affichage des messages d'erreurs simplifés" qu'il faut désactiver.
C'est plus cool de développer avec Mozilla donc


Message édité par T509 le 22-06-2004 à 23:14:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed