2 questions (404 personnalisée et url rewrite)

Nouveau WRInaute
hello,

la structure de mon site est la suivante

rep1
- sousrep1
- sousrep2
- sousrep3

dans rep1, j'ai mis un htaccess
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^annuaire(.*)\.html$ annuaire.php?deb=$1 
RewriteRule ^categ-(.*)-(.*)\.html$ search.php?categorie=$1&deb=$2 
RewriteRule ^recherche-(.*)-(.*)\.html$ search.php?type=$1&deb=$2 [L]
ErrorDocument 404 http://www.monsite.com/rep1/erreur404.php

1ere question
dans la page erreur404.php comment je fais pour récupérer l'url qui a provoqué l'erreur 404? J'ai essayé avec $_SERVER['HTTP_REFERRER'] et $_SERVER[REQUEST_URI] mais ça m'affiche rep1/erreur404.php

Sur ce forum j'ai vu qu'il fallait mettre le chemin relatif du fichier erreur404.phph dans le htaccess comme suit
Code:
ErrorDocument 404 /erreur404.php

Or en essayant ça, je n'intercepte plus les erreurs 404, la page erreur404.php n'est plus appelée.

2e question
je voudrais que www.monsite.com/rep1/toto/index.php?deb=10 devienne www.monsite.com/rep1/toto/page-10.html
ou encore www.monsite.com/rep1/zaza/index.php?deb=10 devienne www.monsite.com/rep1/zaza/page-10.html
etc....

Quel est la règle pour celà, sachant que je compte la mettre dans le htaccess de la racine du site.
 
WRInaute passionné
Pour ta deuxieme question, il suffit d'appliquer la meme méthode que ton url rewrit déjà existant sauf que tu met des '/' et pas des '-'
 
Nouveau WRInaute
euuuh, j'ai pas trop compris là :roll:

tu parles de mettre ça dans le htaccess à la racine
Code:
RewriteRule ^(.*)/(.*)\.html$ rep1/sousrep1/$2/index.php?deb=$2

le pb c'est que sousrep2 est variable

j'avais pensé mettre
Code:
RewriteRule ^(.*)/page-(.*)\.html$ $1/index.php?deb=$2
 
Nouveau WRInaute
miam; soluce trouvée pour les 2 questions :wink:


soluce pour question 1:
il fallait inclure le nom du dossier parent
Code:
ErrorDocument 404 /rep1/erreur404.php
au lieu de ErrorDocument 404 /erreur404.php


soluce pour question 2:
il fallait mettre un htaccess dans le sousrep1
Code:
RewriteRule ^(.*)/page(.*)\.html$ $1/index.php?deb=$2 [L]

voila voila ;)
[/quote]
 
Discussions similaires
Haut