Tout rediriger vers un fichier php
8 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
Tout rediriger vers un fichier php
Salut,
J'avais trouvé une méthode très simple pour faire de l'url rewriting.
Dans .htacces j'avais mis :
"ErrorDocument 404 /index.php"
Et dans index.php, je récupérais la variable globale $REQUEST_URI, que je décomposais en différentes variables pour produire à la volée la page requise.
Tout marche impeccable, sauf un petit problème : une erreur 404 est renvoyée...
Ca ne gène pas un visiteur lambda qui n'y voit que du feu, mais googlebot, lui, perçoit l'erreur 404, en conclut que ma page n'existe pas, ce qui n'est pas très bon pour le référencement.
Je n'ai pas très envie de me mettre à l'url rewriting traditionnel.
Je vouvrais bien garder la même méthode, mais sans générer une erreur...
Comment écrire mon .htaccess pour que toute requête soit renvoyée sans erreur vers index.php ? (Tout en gardant bien sûr dans $REQUEST_URI la requête du visiteur).
J'avais trouvé une méthode très simple pour faire de l'url rewriting.
Dans .htacces j'avais mis :
"ErrorDocument 404 /index.php"
Et dans index.php, je récupérais la variable globale $REQUEST_URI, que je décomposais en différentes variables pour produire à la volée la page requise.
Tout marche impeccable, sauf un petit problème : une erreur 404 est renvoyée...
Ca ne gène pas un visiteur lambda qui n'y voit que du feu, mais googlebot, lui, perçoit l'erreur 404, en conclut que ma page n'existe pas, ce qui n'est pas très bon pour le référencement.
Je n'ai pas très envie de me mettre à l'url rewriting traditionnel.
Je vouvrais bien garder la même méthode, mais sans générer une erreur...
Comment écrire mon .htaccess pour que toute requête soit renvoyée sans erreur vers index.php ? (Tout en gardant bien sûr dans $REQUEST_URI la requête du visiteur).
Salut,
La méthode que tu expliques avec l'erreur 404, ca va aussi très bien pour faire des urls "search engine friendly"
C'est expliqué ici: (en anglais)
http://www.sitepoint.com/article/search ... dly-urls/2
Google ne va pas voir pas d'erreur 404, c'est Apache qui génére un 404 -> ca redirige vers ton index.php et il renvoie un code 200 found.
Le problème de cette technique c'est que le fichier log de apache va être rempli d'erreurs 404.
NB: si tu comptes utiliser cette technique, fait attention pour tes formulaires au action="..." !
En effet, si tu POST des données vers un fichier qui n'existe pas, index.php va s'en charger, mais les données POST ne seront pas re-transmises apres l'erreur 404!
C'est vrai que l'url rewriting c'est pas super facile, personnelement j'utilise la méthode du PATH_INFO, avec des liens symboliques vers les fichiers php pour faire de jolies URL (semblant de répertoires)
La méthode que tu expliques avec l'erreur 404, ca va aussi très bien pour faire des urls "search engine friendly"
C'est expliqué ici: (en anglais)
http://www.sitepoint.com/article/search ... dly-urls/2
Google ne va pas voir pas d'erreur 404, c'est Apache qui génére un 404 -> ca redirige vers ton index.php et il renvoie un code 200 found.
Le problème de cette technique c'est que le fichier log de apache va être rempli d'erreurs 404.
NB: si tu comptes utiliser cette technique, fait attention pour tes formulaires au action="..." !
En effet, si tu POST des données vers un fichier qui n'existe pas, index.php va s'en charger, mais les données POST ne seront pas re-transmises apres l'erreur 404!
C'est vrai que l'url rewriting c'est pas super facile, personnelement j'utilise la méthode du PATH_INFO, avec des liens symboliques vers les fichiers php pour faire de jolies URL (semblant de répertoires)
spoutnik a écrit:Google ne va pas voir pas d'erreur 404, c'est Apache qui génére un 404 -> ca redirige vers ton index.php et il renvoie un code 200 found.
A condition de rajouter:
- Code: Tout sélectionner
header('HTTP/1.1 200 OK');
dans le fichier qui traite l'erreur.
spoutnik a écrit:Salut,
Google ne va pas voir pas d'erreur 404, c'est Apache qui génére un 404 -> ca redirige vers ton index.php et il renvoie un code 200 found.
?? Ecoute, je me suis aperçu du pb parce que google ne référence pas du tout mes pas autres que index, alors que googlebot les visite.
On m'a conseillé d'aller tester ma page sur http://fr.webmasterplan.com/cgi-local/linkwmp.cgi, et j'ai réalisé que tous mes liens internes renvoyaient 404.
J'ai fait le rapport avec ma façon de rediriger. Mais je vois que cette solution avait déjà été testée par qqun chez free, et qu'il prétendait être qd même correctement référencé.
Moi, pour ma part, je suis sûr que c'est l'origine de mes pbs, et si il existe une soluce, indiquez-la moi svp.
shrom a écrit:spoutnik a écrit:Google ne va pas voir pas d'erreur 404, c'est Apache qui génére un 404 -> ca redirige vers ton index.php et il renvoie un code 200 found.
A condition de rajouter:
- Code: Tout sélectionner
header('HTTP/1.1 200 OK');
dans le fichier qui traite l'erreur.
Tu rajoutes ça dans quoi ? .htaccess ou index.php ?
Pasco a écrit:shrom a écrit:spoutnik a écrit:Google ne va pas voir pas d'erreur 404, c'est Apache qui génére un 404 -> ca redirige vers ton index.php et il renvoie un code 200 found.
A condition de rajouter:
- Code: Tout sélectionner
header('HTTP/1.1 200 OK');
dans le fichier qui traite l'erreur.
Tu rajoutes ça dans quoi ? .htaccess ou index.php ?
juste avant le header("Location:........
Pasco a écrit:A condition de rajouter:
- Code: Tout sélectionner
header('HTTP/1.1 200 OK');
dans le fichier qui traite l'erreur.
Tu rajoutes ça dans quoi ? .htaccess ou index.php ?[/quote]
index.php sinon Apache renvoie un 404.
J'ai une solution :
Dans mon fichier .htacces, j'écris :
RewriteEngine on
RewriteRule ^(.+)\.htm$ /index.php
Et contrairement à ce que je pensais, on peut encore récupérer $REQUEST_URI avec la requête du visiteur. Il ne reste plus qu'à traiter cette requête.
Bref, c'est exactement comme avec ErrorDocument 404 /index.php, sauf qu'aucune erreur 404 est générée. Ca a l'air de marcher parfaitement.
Pour avoir confirmation, j'attends que google se décide à référencer mes pages secondes.
A+
Dans mon fichier .htacces, j'écris :
RewriteEngine on
RewriteRule ^(.+)\.htm$ /index.php
Et contrairement à ce que je pensais, on peut encore récupérer $REQUEST_URI avec la requête du visiteur. Il ne reste plus qu'à traiter cette requête.
Bref, c'est exactement comme avec ErrorDocument 404 /index.php, sauf qu'aucune erreur 404 est générée. Ca a l'air de marcher parfaitement.
Pour avoir confirmation, j'attends que google se décide à référencer mes pages secondes.
A+
8 messages • Page 1 sur 1
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 :
- Article sur le fichier .htaccess
- Déclarer son fichier sitemap dans le fichier robots.txt
- Sortie de GoogleStats v2.01
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Tutoriel complet sur les redirections (301, 302, JavaScript, ...)
- Aperçu des différents types de redirection
- Sitemaps : protocole commun pour Google, Yahoo et Live Search
- Comment gérer simplement les sitemaps de plusieurs sites au même endroit
- Exalead rejoint le protocole Sitemaps.org
- Domaine favori - URL canonique
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum