Url réécrites coté php, RewriteRule .* index.php et page 404 qui ne marche plus

Nouveau WRInaute
url réécrites coté php, RewriteRule .* index.php et page 40

bonjour,

dans le cadre de mon travail, j'ai eu a optimiser le référencement d'un site.
nous avons réécrit les url coté php pour que les catégories apparaissent sous la forme /cat1/cat2/cat3/
et les fiches produits sous la forme /cat1/cat2/cat3/prod1.html

mon probleme est que je n'arrive plus à activer la page 404.

dans le htaccess, il existe une directive : "RewriteRule .* index.php"

la page 404 ne fonctionne que lorsque cette ligne est commentée, parcontre c'est l'ensemble des pages du site présentant les urls avec le format présenté ci dessus qui renvoient une erreur 404.

à l'inverse, si je laisse cette directive en place, plus aucune page ne renvoie d'erreur (je peux taper : /cat1/blabla) et la page affichée reste la catégorie 1.

quelqu'un aurait il une piste ?
il faudrait faire des modification coté php ou plutot coté htaccess.

je suis perdu, merci d'avance pour votre aide.
 
Nouveau WRInaute
voici le htaccess :

Code:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^admin$ - [L]
RewriteRule ^admin/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

ErrorDocument 404 /page_404.htm


je pense que le soucis vient du fait que comme tout passe par index.php, apache ne sait plus faire la difference entre une adresse qui existe ou qui n'existe pas sur le site. Ainsi, quand on tape n'importe quoi apres le nom de domaine dans la barre d'adresse, le site se raffraichi et reste sur la page d'accueil, la page 404 n'apparait pas.

le seul moyen que j'ai trouvé pour l'instant est de lister l'ensemble des urls du site (fiches produit , etc) dans un tableau et de renvoyer (coté PHP) vers la page 404 si l'url tapée n'y est pas présente, mais cela pose pas mal de soucis.

une idée ?
 
Discussions similaires
Haut