Version complète: sur le forum Webmaster Hub : Urlrewriting foireux
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
pierre130000
Bonjour à tous,

Voilà j'ai un souci d'urlrewriting. Apparemment 1and1.fr ne permet pas les pages d'erreur personnalisé par un simple errordocument 404 /404.php. Il faut donc passer par de l'urlrewriting. Problème je suis nul avec les htaccess... Dans mon htaccess j'ai plusieurs conditions de réécriture. Voici dons le htaccess simple sans gestion des erreurs:

CODE
Options +FollowSymlinks
RewriteEngine on
RewriteRule communique-([0-9]*).php /communique.php?id=$1
RewriteRule relations-presse-([0-9]*).php /relations-presse.php?page=$1


<Files updates.xslt>
AddCharset ISO-8859-1 .xml
AddType text/xsl .xslt
</Files>


Et quand je rajoute la gestion des pages d'erreur (seulement la 404, je demande pas beaucoup!) à la méthode 1and1 ça donne:

CODE
Options +FollowSymlinks
RewriteEngine on
RewriteRule communique-([0-9]*).php /communique.php?id=$1
RewriteRule relations-presse-([0-9]*).php /relations-presse.php?page=$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /404.php

<Files updates.xslt>
AddCharset ISO-8859-1 .xml
AddType text/xsl .xslt
</Files>


Dans le second htaccess, l'erreur 404 est prise en compte sans problème. Mais la réécriture d'url sur les pages communique.php et relations-presse.php provoque une erreur 404.

Si quelqu'un est assez gentil pour me dire ou est ma bêtise?

Merci .
Licorne
Salut,
Pour 1&1, tu dois rajouter une ligne ceci:
CITATION
Options +FollowSymlinks
RewriteEngine on
RewriteBase /

cool.gif
de plus c'est :
CITATION
RewriteRule ^communique-([0-9]*).php$ /communique.php?id=$1 [L]
RewriteRule ^relations-presse-([0-9]*).php$ /relations-presse.php?page=$1 [L]

ça devrait marcher a_thumbsup_20.gif
Dan
En fait, si tu ne mets pas le flag [L] sur tes premières réécritures, la règle va continuer... et chaque règle du fichier sera vérifiée.

Et comme les fichiers communique-xyz.html ne sont ni des fichiers existants, ni des répertoires, tu afficheras la page 404.php smile.gif
pierre130000
MERCI! J'essaye. Et Merci pour l'explication Dan j'ai horreur de copier-coller des codes sans comprendre....


EDIT: Ca marche impect, Promis je n'oublie plus le flag [L]!
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.