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

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

piiiik
Nouveau WRInaute
 
Messages: 2
Inscription: Mar Déc 16, 2008 11:57

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

Message le Mar Déc 16, 2008 12:20

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.

Don Mateo
Nouveau WRInaute
 
Messages: 7
Inscription: Dim Déc 14, 2008 23:19

Message le Mer Déc 17, 2008 0:52

Pourrais-tu nous donner un extrait de ton .htaccess pour cerner un peu mieux le problème ?

piiiik
Nouveau WRInaute
 
Messages: 2
Inscription: Mar Déc 16, 2008 11:57

Message le Lun Déc 29, 2008 9:58

voici le htaccess :

Code: Tout sélectionner
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 ?


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Video Store

  • Test HTTP header
    Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités