Y' un truc qui m'échappe sur le principe de l'URL Rewriting!

Nouveau WRInaute
Bonjour le groupe,

Je viens de créer ma 1ère règle URLrewriting, et apparemment ça fonctionne puisque, si je tape, pour vérifier, l'adresse www.example.com/categorie,numero,nom.html, ça me renvoit bien à l'url réelle qui est de la forme www.example.com/choix.php?categorie=cat ... ro&nom=nom

Mais y'a quand même un truc qui m'échappe sur le principe de référencement via cette méthode de réécriture : est-ce que Google va référencer mes pages ainsi réécrites, même si actuellement elles n'apparaissent pas sous la forme html (puisqu'elle restent sous la forme php+variables dans la barre d'adresse des navigateurs). Ou bien faut-il que j'écrive aussi une règle qui demande la redirection vers la nouvelle url réécrite en html (afin que l'url affichée dans la barre d'adresse soit bien celle réécrite en html) ?
J'avoue que je n'ai pas encore eu le déclic qui me permettrait de vraiment comprendre ce que je fais, ni comment Google et consorts fonctionnent avec le référencement d'url réécrites !
Merci d'avance, @+



edit dd32 : example.com poir les exemples d'url merci ;)
 
WRInaute accro
tu as du mettre l'url en absolu (avec le nom de domaine et tout) et du coup ca te fait une redirection vers l'adresse relle. si tu met en adresse physique (/...) l'url dans la barre d'adresse restera la .html
 
Nouveau WRInaute
e-kiwi a dit:
tu as du mettre l'url en absolu (avec le nom de domaine et tout) et du coup ca te fait une redirection vers l'adresse relle. si tu met en adresse physique (/...) l'url dans la barre d'adresse restera la .html

Merci pour la réponse si rapide !
Mais non, je me suis servie d'une url relative. Voilà mon bout de code :

Code:
RewriteRule ^(.*),(.*),(.*)\.html$ /choix.php?categorie=$1&numero=$2&nom=$3 [L,R=301]

Keskispasse ???
 
WRInaute occasionnel
L'URL Rewriting est un patch pour tes URL, mais si tu veux qu'elles soient prises en compte, il faut les modifier dans chacun de tes liens ! sinon effectivement tu auras ton système de réécriture qui fonctionne mais les URL réécrites ne seront jamais prises en compte.

Par ailleurs, et tu l'écris, il faut désactiver l'accès aux anciennes URL (avec paramètres) en les redirigeant vers les nouvelles si et seulement si on y accède directement (sans passer par l'URL réécrite) via des redirections 301.
 
Nouveau WRInaute
yep a dit:
L'URL Rewriting est un patch pour tes URL, mais si tu veux qu'elles soient prises en compte, il faut les modifier dans chacun de tes liens ! sinon effectivement tu auras ton système de réécriture qui fonctionne mais les URL réécrites ne seront jamais prises en compte.

J'ai modifié tous mes liens dynamiques (ceux avec paramètres) dans cette page. Par contre, j'ai d'autres liens internes comme un lien vers la page d'accueil (index.php) ou autres (liens.php, infos.php, etc...). Et là, je ne sais pas réécrire leurs url en html, peut-être parce qu'ils sont tous dans le même répertoire et dépendent tous du même fichier .htaccess. Là, franchement, je nage !

Par ailleurs, et tu l'écris, il faut désactiver l'accès aux anciennes URL (avec paramètres) en les redirigeant vers les nouvelles si et seulement si on y accède directement (sans passer par l'URL réécrite) via des redirections 301.

Donc mon flag [R=301] est bon, ou bien faut-il que je donne d'autres instructions ?

Merci ![/quote]
 
WRInaute impliqué
Il y a une seule question a te poser: quelle est l'URL que tu veux que google indexe entre -www.monsite.com/categorie,numero,nom.html et -ww.monsite.com/choix.php?categorie=categorie&numero=numero&nom=nom ?

Si c'est la deuxième, alors ta règle est la bonne. Si tu veux que ce soit la page html qui soit référencée, alors il faut faire autrement.

Il faut garder ta règle, sans le R=301, pour afficher le bon contenu. Et il faut une autre règle en sens inverse pour rediriger vers la page HTML. On ajoute un parametre bidon pour éviter de boucler, et un ? pour éviter de garder les paramètres après le ?:

Code:
RewriteRule ^(.*),(.*),(.*)\.html$ /choix.php?stop&categorie=$1&numero=$2&nom=$3 [L]
RewriteCond %{QUERY_STRING} ^categorie=(.*)&numero=(.*)&nom=(.*)$
RewriteRule ^choix\.php /%1,%2,%3.html? [R=301,L]
 
WRInaute passionné
[L,R=301]
R= 301 veut dire que tu fais une redirection definitive vers la nouvelle url. Supprime le R=301.
 
Nouveau WRInaute
MERCI A TOUS, je comprends maintenant un peu mieux le principe.

Ma page s'affiche maintenant avec l'adresse en html, tout en s'affichant comme si elle appelait la page php + paramètres.

Par contre, comment fait-on pour que les liens à l'intérieur de cette page soit, eux aussi, également réécrits en html ?

Exemple, dans ma page, j'ai une liste de liens, à la manière d'un annuaire, mais quand on passe la souris sur le lien, on voit qu'il s'agit toujours du lien dynamique en php+paramètres

Donc, comment fait-on pour avoir :
- <a href="categorie1,numero1,nom1.html>lien 1</a><br>
- <a href="categorie2,numero2,nom2.html>lien 2</a><br>
(etc...)

au lieu de :
- <a href=choix.php?categorie=categorie1&numero=numero1&nom=nom1>lien 1</a><br>
- <a href=choix.php?categorie=categorie2&numero=numero2&nom=nom2>lien 2</a><br>
(etc...)

???

Merci d'avance
 
WRInaute passionné
Bonjour
C'est à toi de changer les liens.
Si tu as fais le site toi-meme, tu sais comment.
Sinon, si c'est un CMS, regarde s'il y a une fonction qui construit les liens.
 
WRInaute impliqué
LaMarmotte a dit:
MERCI A TOUS, je comprends maintenant un peu mieux le principe.

Ma page s'affiche maintenant avec l'adresse en html, tout en s'affichant comme si elle appelait la page php + paramètres.

Par contre, comment fait-on pour que les liens à l'intérieur de cette page soit, eux aussi, également réécrits en html ?

Exemple, dans ma page, j'ai une liste de liens, à la manière d'un annuaire, mais quand on passe la souris sur le lien, on voit qu'il s'agit toujours du lien dynamique en php+paramètres

Donc, comment fait-on pour avoir :
- <a href="categorie1,numero1,nom1.html>lien 1</a><br>
- <a href="categorie2,numero2,nom2.html>lien 2</a><br>
(etc...)

au lieu de :
- <a href=choix.php?categorie=categorie1&numero=numero1&nom=nom1>lien 1</a><br>
- <a href=choix.php?categorie=categorie2&numero=numero2&nom=nom2>lien 2</a><br>
(etc...)

???

Merci d'avance

Les règles que je te donne ont cet effet.

Pour google, ou tout autre visisteur, tout lien de la forme choix.php?categorie=categorie1&numero=numero1&nom=nom1 sera vu comme categorie1,numero1,nom1.html

Mais c'est mieux de mettre directement le lien vers la page html.
 
Discussions similaires
Haut