Version complète: sur le forum Webmaster Hub : reecriture d'url
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
yankey
Bonjour,
Je me prend la tête sur un fichier htaccess. qui fonctionne trés bien chez un hébergeur x en mutualisé, mais qui refuse complètement de s'exécuter sur un autre serveur en semi-dédié. L'hébergeur m'assure que cela provient de mon fichier, et je ne vois pas du tout comment je pourrai le vérifier...

Voici le code:

CODE
ErrorDocument 401 http://www.site.com/repertoire/404.php
ErrorDocument 403 http://www.site.com/repertoire/404.php
ErrorDocument 404 http://www.site.com/repertoire/404.php
RewriteEngine On
Options -Indexes
Options +FollowSymlinks
RewriteRule ^http://www.site.com/repertoire/annonce-(.+)\.html$ http://www.site.com/repertoire/annonce.php?libelle=$1 [L]


le fichier est bien prix en compte par le serveur, puisque la page d'erreur remonté en cas de fausse url est bien le bon fichier 404.php, par contre la réécriture ne fonctionne pas.

J'ai vérifié sur php.info, le mode rewriting est bien activé.

Est-ce que quelqu'un voit l'erreur ?

Merci beaucoup smile.gif
TheRec
Bonjour,

la première partie d'une RewriteRule DOIT être un chemin relatif (au répertoire courant, ou à la RewriteBase) et non une URL complète...
La seconde en revanche, PEUT être une URL, mais dans ce cas la réécriture devient une redirection...(sinon cela signifierait qu'il serait possible de masquer l'URL d'un site et présenter son contenu). Généralement c'est aussi un chemin relatif...surtout dans ton cas, tu semble vouloir atteindre des fichiers étant hébergés sur le même domaine, donc à priori sur le même espace d'hébergement.

Essaie peut-être ceci, dans le répertoire "repertoire", place ce même fichier .htaccess mais en modifiant la RewriteRule ainsi :
CODE
RewriteRule ^annonce-(.+)\.html$ annonce.php?libelle=$1 [L]

Tu seras peut être amené à mettre le chemin complet vers tes fichiers...cela dépend de ta configuration Apache, dans ce cas à toi d'ajouter le répertoire avant le nom de fichier dans la règle de réécriture.

Bonne continuation.
yankey
Oh ben c'était tout bête comme d'habitude...
le bon code est:
RewriteRule ^annonce-(.+)\.html$ /annonce.php?libelle=$1 [L]
c'est juste le / qui manquait devant annonce.php... sans ça marche pas, avec ça marche
Bonne journée smile.gif
Dan
CITATION(yankey @ mercredi 7 juin 2006, 11h54) *
Oh ben c'était tout bête comme d'habitude...
le bon code est:
RewriteRule ^annonce-(.+)\.html$ /annonce.php?libelle=$1 [L]
c'est juste le / qui manquait devant annonce.php... sans ça marche pas, avec ça marche
Bonne journée smile.gif

C'est que tu es en mutualisé chez OVH, non ? wink.gif
TheRec
Et donc, de rien... c'est "tout bête", mais ça tombe pas du ciel quand même. Ce n'est pas que je sois en manque de mercis, mais c'est une question de politesse.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.