URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Je suis en train de mettre en place des URL rewriting sur un de mes sites et cela marche plutôt bien. Les pages sont redirigées comme je le souhaite, tout irait bien sauf que.....
L'adresse apparaissant dans la barre d'adresse est... la nouvelle adresse URL (celle sur laquelle on redirectionne)... Certes cela pourrait paraitre logique, mais je pensais que la réécriture d'URL servait justement a cela... Masquer la véritable URL, pour des questions de sécurité et de lisibilité ou simplement de redirection...
Peut-être suis-je dans l'erreur (?) ou y-a-t-il un paramètre pour le spécifier voici les instructions de mon .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^reference=(.*)&surcat=(.*)&catdesc=(.*)&desc=(.*)
RewriteRule article\.php(.*) /article/%2/%3/%4/%1.html [R=301]
RewriteRule /article/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4 [L]
</IfModule>
la première partie, construisant une adresse .html est (en fait) pour les anciennes adresses encore indexée par les moteurs de recherche, qui étaient en PHP, le RewriteRule la "transforme" au nouvelles normes dossier+html et signale que c'est une redirection permanente.
le deuxième RewriteRule, lui, transforme la nouvelle adresse url avec le bon fichier php d'accès aux articles.
A priori ca se passe bien, lorsque je tape l'ancienne adresse, la transformation se fait bien (en 2 fois) et j'accède bien a la bonne page, sauf que dans la barre d'adresse, je n'ai pas ni l'adresse que j'ai saisi, ni l'adresse HTML, mais l'adresse finale :
article.php?reference=toto !!!
De plus, mais c'est autre chose, ca marche pas terrible lorsque je saisi directement l'adresse dossier+HTML... ca renvoi une erreur 404... (alors que si je saisi l'adresse .PHP précédente, la transformation se fait bien, en 2 temps ?)
Ça fait en fait 2 questions.... Désolé, mais c'est surtout sur l'apparition de la redirection dans la barre d'adresse que je m'interrogeais...
D'avance, Merci beaucoup de votre aide et de vos lumières !
EDIT: Je précise que, bien sur, j'ai déjà parcouru le forum et consulté tous les posts traitant de "URL rewriting et adresse dans la barre" sans trouver la solution.....
Merci de vous intéresser a mon problème et de m'aider
-

polweb - WRInaute accro

- Messages: 3921
- Inscription: 18 Oct 2006
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Rewrite cond condition sur l'adresse qui identifie la structure d'article
rewrite rule adresse.html vers structure_d'article_mal_écrite.php
N'oublie pas le robots.txt
A plus.
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Mais en fait j'ai deux règles car je veux gérer les pages déjà indexées par Google (entre autres) qui sont de la forme :
article.php?param1¶m2¶m3¶m4
et les passer en ==> /article/param2/param3/param1.html
qui est (sera) la nouvelle forme des liens URL dans mes pages
c'est la première règle :
RewriteCond %{QUERY_STRING} ^reference=(.*)&surcat=(.*)&catdesc=(.*)&desc=(.*)
RewriteRule article\.php(.*) /article/%2/%3/%4/%1.html [R=301]
Ceci essentiellement afin d'éviter les duplicate contents...
Mes nouveaux liens dans les pages sont (seront) du type /article/param2/param3/param1.html
mais mes pages réelles sont toujours des pages PHP
d'où la deuxième règle (qui s'applique éventuellement aussi sur les URL rewritées provenant de google)
RewriteRule /article/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4 [L]
qui transforme les liens de la forme:
/article/param2/param3/param1.html
en /article.php?reference=param1... Qui est ma page physique sur le serveur..
Selon ce que j'ai compris du URL rewriting, le tag [R=301] permet de signaler une redirection permanente des liens article.php sur les nouveaux liens dossier+html, pour moi, ce sont donc ces liens qui doivent apparaitre dans la barre d'adresse, non ?
Et le dernier rewrite avec [L] en fin signale que c'est le dernier rewrite, la page a été trouvée... C'est bon... Mais pourquoi afficher justement cette page ? et pas celle avec le [R=301] ??
Merci de votre aide....
EDIT:
Le but de cette opération est la SEO, évidement, assigner des URL plus explicites et plus SearchEngine Friendly...
1-> Comment réagissent alors Google et les autres moteurs si on donne un lien et que celui récupéré (barre d'adresse) diffèrent ?
Lequel sera indexé ?...
2-> pour des raison de sécurité, comment cacher alors ses paramètres, puisqu'ils apparaitront dans la barre d'adresse... ?
J'avais vu sur developpez.com un schémas laissant sous-entendre que l'on passait au navigateur une URL de format HTML, que cela était réinterprété par le serveur via le .htaccess, vers un fichier PHP, traité, puis la page renvoyée vers le navigateur, mais avec le nom de la page HTML...
Merci de TOUTES vos lumières sur ce sujet....
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
- Code: Tout sélectionner
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ! &rewrite
RewriteCond %{QUERY_STRING} ^reference=(.*)&surcat=(.*)&catdesc=(.*)&desc=(.*)
RewriteRule article\.php(.*) /article/%2/%3/%4/%1.html [R=301]
RewriteRule /article/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4&rewrite [L]
</IfModule>
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Non, Non, je ne me fait pas comprendre...
ca marche comme je veux.... Au niveau des redirections en tout cas...
Les anciennes pages (Google et autres) sont bien redirectionees (Permanently pour que le moteur le comprenne) vers leur version "Fake" HTML... Puis reconvertie en URL réelle PHP avec les paramètres...
Et les nouveaux liens sont, eux aussi, reconvertis dans la bonne URL a traiter
Jusqu'ici tout va bien...
En fait la seule chose qui me chagrine est que :
si on tape l'URL : /article/accessoires/mode/sacs/toto.html,
l'URL est bien rewritée vers la page PHP correspondante... Normal, pas de soucis, MAIS /article/accessoires/mode/sacs/toto.html n'apparait pas dans la barre d'adresse... c'est article.php?liste_des_parametres qui apparait !!!
Et je veux pas !!! Il FAUT que ce soit la page HTML qui apparaisse comme montré ici...
S'il vous plait quelqu'un....
PS: d'ailleurs de toute façon l'instruction RewriteCond %{QUERY_STRING} ! &rewrite donne une erreur 500...
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
forty a écrit:je suis quasi sur que c'est ta redirection qui fait ca. As-tu essayé de ne mettre que la réécriture (sans la redirection)
Euhhh. Que veux-tu dire ?
si j'enlève la deuxième rewriterule, je me retrouve bien avec l'URL HTML dans la barre d'adresse, mais comme la page physique n'existe pas, j'ai une erreur 404....
Comme je le dit, les redirect marche comme je le souhaite, c'est juste que c'est l'URL de rewrite avec le PHP et tous les paramètres qui apparait dans la barre d'adresse et non l'URL avec le HTML...
J'ai fait des tests simplissime genre
RewriteRule (.*) /index.php
et effectivement, je re3tourne bien sur index.php, quelque soit la page demandée, mais c'est toujours index.php qui apparait dans la barre d'adresse !!!
J'en arrive a me poser juste une simple question :
Peut-on réellement utiliser le URL rewriting pour masquer ses vrais URL ?
genre que l'utilisateur (et les moteurs) voient toujours "toto-tata-titi.html", alors que la vrai page est "article.php?ref=toto&cat=tata&sort=titi" ?
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
bloodipunk a écrit:si j'enlève la deuxième rewriterule, je me retrouve bien avec l'URL HTML dans la barre d'adresse, mais comme la page physique n'existe pas, j'ai une erreur 404........
![]()
Je conseille de garder uniquement la réécriture. Ca permettra de voir si elle fonctionne et si elle n'est pas parasitée par la redirection quand elle est présente.
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
forty a écrit:Je conseille de garder uniquement la réécriture. Ca permettra de voir si elle fonctionne et si elle n'est pas parasitée par la redirection quand elle est présente.
Merci de tes reponses
Mais je ne te suis pas...
Pour être plus clair, je refait un topo plus simple de mon problème :
Ancienne URL (plus du tout utilisée en Lien sur le site, mais indexée par Google et autres) :
article.php?reference=toto&surcat=tata&catdesc=titi&desc=tutu
Nouvelle URL (désormais utilisée partout dans les pages du site) :
/article/tata/titi/tutu/toto.html
URL réelle Physiquement présente sur le site (utilisée pour créer la page demandée) :
article.php?reference=toto
1 - Lorsque je saisie
"article.php?reference=toto&surcat=tata&catdesc=titi&desc=tutu"
dans la barre d'adresse,
la page affichée est bien
"article.php?reference=toto",
la redirection se fait donc bien (en 2 fois, d'abord transformation en HTML puis retransformation en article.php?reference=xx)
2 - Lorsque je saisie
"/article/tata/titi/tutu/toto.html"
dans la barre d'adresse
la page affichée est bien
"article.php?reference=toto",
la redirection se fait donc bien...
MAIS dans tous les cas, c'est
"article.php?reference=toto"
qui apparait dans la barre d'adresse (logique me direz-vous), mais si j'utilise justement le URL rewriting c'est parce que je veux masquer mes URL reelles et voir
"/article/tata/titi/tutu/toto.html"
dans la barre d'adresse...
Je pensais que c'était justement une des utilités de la réécriture d'URL, pouvoir faire de la SEO et reformater les URL vues par les visiteurs et les moteurs et, la, je sais plus.....
-

Djibou_Te@M - WRInaute occasionnel

- Messages: 426
- Inscription: 20 Avr 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
il me semble aussi que ce que t'as dit Forty est juste :
La redirection parasite le rewriteRule du dessous.
RewriteRule article\.php(.*) /article/%2/%3/%4/%1.html [R=301]
RewriteRule /article/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4 [L]
si tu appelles /article/tata/titi/tutu/toto.html, cela passe dans le rewriteRUle[L] et donc appelle la page article.php
du coup cela repasse par le htaccess et là , comme le htaccess appelle article.php, il le redirige en 301 en passant par la première ligne....
Cela peut surcharger facilement, 2 appels au htaccess pour une page...
Il me semble ...affaire à suivre, dis nous si tu trouves.
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
J'ai donc essayé de virer le
RewriteRule article\.php(.*) /article/%2/%3/%4/%1.html [R=301]
comme tu (et Forty) le conseillait...
Il ne reste donc qu'UNE seule instruction simplissime :
RewriteRule /article/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4 [L]
Mais pareil.....
La redirection se fait bien sur la bonne page : "article.php?reference=toto" mais c'est aussi "article.php?reference=toto" qui apparait dans la barre d'adresse...
Donc, je vais juste poser une question :
Peut-on utiliser l'URL Rewriting pour la SEO, c'est-a dire que l'utilisateur (et les moteurs) ne voit que des URL claires dans les liens des pages du site (ca, ok...) mais aussi dans la barre d'adresse..... ?
En gros est-ce bien comme cela que cela se passe :
1. utilisateur clique sur (ou saisit directement dans la barre d'adresse) /article/tata/titi/tutu/toto.html
2. Serveur interprète via .htaccess et exécute la page article.php?reference=toto
3. la page ainsi construite est renvoyée par le serveur sur le navigateur sous le nom /article/tata/titi/tutu/toto.html
Parce que apparemment ce n'est pas le cas....
Merci de votre aide...
Si c'est possible j'aimerai savoir comment...
Si ce n'est pas possible, j'aimerai alors comprendre pourquoi on dit que l'URL Rewriting peut être utilisé pour masquer les URLs (par sécurité ou pour la SEO).... Car la, je ne saisi pas bien le mécanisme
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Il y a surement une autre règle dans ton fichier qui parasite la réécriture ou une redirection en php avec la fonction header().
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Mais alors pourquoi cela ne fonctionne-t-il pas ?
Il n'y a aucun redirectionnement PHP, tout se fait via le rewriterule...
Voici mon .htaccess exact :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^reference=(.*)&surcat=(.*)&catdesc=(.*)&desc=(.*)
RewriteRule article\.php(.*) /art/%2/%3/%4/%1.html [R=301]
RewriteRule /art/(.*)/(.*)/(.*)/(.*)\.html http://www.monsite.com/article.php?reference=$4 [L]
</IfModule>
si je vire http://www.monsite.com/... Rien ne se passe du tout...
tel qu'il est il fonctionnerait pas mal... En tout cas semble faire ce que je souhaite puisqu'en saisissant l'URLs dans la barre d'adresse (ancienne URL avec php+param) cela me mène bien sur la bonne page finale article.php?reference=toto, comme je le souhaite.
Le seul problème est que ce n'est pas l'URL dossier+html qui apparait dans la barre d'adresse.. rien du tout, a priori...
1. Lorsque je vire les 2 premieres lignes avec le rewritecond, il ne me reste alors
RewriteRule /art/(.*)/(.*)/(.*)/(.*)\.html http://www.monsite.com/article.php?reference=$4 [L]
si je saisi dossier+HTML dans la barre d'adresse => erreur 404 !!! la redirection ne fonctionne pas ???
Pourquoi cela fonctionne-t-il avec la version de départ :
quand je saisi article.php?reference=toto&surcat=tutu&catdesc=tata&desc=titi, j'arrive bien sur la bonne URL (preuve que les redirections fonctionnent)
Alors que en saisissant art/tutu/tata/titi/toto.html, avec ou sans le rewritecond, cela change tout et ne marche pas du tout, même si le rewritecond n'est pas utilisé (alors que ca marche avec easyPHP avec ancienne URL ou nouvelle dossier+html...) ???
Aaarggghhh... S'il vous plait de l'aide... Je deviens fou...
-

forty - WRInaute passionné

- Messages: 1701
- Inscription: 30 Oct 2008
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
Si tu mets l'url complète avec "http://" ca fait une redirection. C'est le fonctionnement normal du module rewrite.
Que se passe-t-il si tu enlève "http://www.tonsite.com" ?
- bloodipunk
- Nouveau WRInaute

- Messages: 15
- Inscription: 11 Aoû 2010
Re: URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
J'ai bien essayé de ne pas mettre le http://....,juste avec
RewriteRule /art/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4 [L]
Mais la... Rien ne se passe... Plus de redirectionnement :
Maintenant mon htaccess est comme suit, sans nom de site en dur :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^reference=(.*)&surcat=(.*)&catdesc=(.*)&desc=(.*)
RewriteRule article\.php(.*) /art/%2/%3/%4/%1.html [R=301]
RewriteRule /art/(.*)/(.*)/(.*)/(.*)\.html /article.php?reference=$4 [L]
</IfModule>
Mais du coup, le redirectionnement ne fonctionne plus du tout, genre il; ne semble rien se passer (en tout cas, si je tape article.php?reference=toto&surcat=tata&catdesc=tutu&desc=titi, j'ai la même adresse URL dans la barre d'adresse... c'est ce que je veux, certes, pas de changement, mais la, justement je voudrais voir art/tata/tutu/titi/toto.html... Si c'est possible... Mais bon, admettons que effectivement la redirection se fait... Sans changement de l'URL...)
Mais quand je saisi directement http://www.monsite.com/art/tata/tutu/titi/toto.html dans la barre d'adresse... Selon le .htaccess (assez simple tout de même)... Pareil... Boum... erreur 404... aaaaaaaaaaaaaarrrrrrrrggghhhhh... ... Je m'en sors pas... Plus ca va pire c'est... Ça marche de moins en moins.....
Merci de continuer a m'aider.... On va bien trouver, une simple petite histoire de barre d'adresse.......
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 :
- URL rewriting et adresse dans la barre
- URL-rewriting propre ? ancienne URL 301 mais réel !
- url rewriting et barre d'adressse
- URL rewriting et barre d'adresses
- URL-rewrite fonctionne mais il ne change pas la barre d'IE
- pb affichage nvelle adresse après url rewriting
- URL rewriting- affichage dans la bare d adresse
- [réglé]url rewriting et adresse qui ne change pas
- demande avis sur adresse après url rewriting
- [URL REW]url dans la barre d'adresse ?
- Tutoriel URL Rewriting
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- l'URL Rewriting expliqué aux débutants
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Design de WRI version 3
- Sortie de GoogleStats v2.01
- Aperçu des différents types de redirection
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl, Le raccourcisseur d'URL youtu.be, Google Local Business Ads, Google Bookmarks, Google Shared Stuff, Google AdWords API
- Voir la classe C de plusieurs sites
Cet outil vous permet de vérifier si plusieurs sites sont hébergés sur la même classe C (adresse IP du serveur). - Transformer des simples citations de votre site en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink). - Analyse de popularité
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
