eclairage sur les principes de l'url rewriting

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


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

eclairage sur les principes de l'url rewriting

Message le Ven Fév 22, 2008 16:22

Bonjour.

après avoir mis en place avec succès mes 1es réécritures d'Url, en m'appuyant notamment sur cet excellent tuto http://www.webrankinfo.com/analyses/autres/mettre-en-place-url-rewriting.php,
je m'aperçois avec stupeur que j'escomptais un tout autre résultat.

Je pensais que le serveur allait me renvoyer ma page exemple.php?var=$1&var2=$2... avec une url réécrite (exemple-$1-$2.html par ex.).

Or c'est l'inverse. C'est en appelant exemple-$1-$2.html que j'affiche sa déclinaison php.

Donc si je veux que les moteurs et les clients lisent l'URL exemple-$1-$2.html au lieu de l'URL php, que dois-je mettre en place en sus d'un bon .htaccess ?

Ne suis-je donc qu'un sot?

Merci.

mariea
WRInaute impliqué
WRInaute impliqué
 
Messages: 732
Inscription: 6 Mai 2005

Message le Ven Fév 22, 2008 17:02

Le moteur de rewriting sert à extraire des variables (selon la ou les règles que tu définis dans le fichier .htaccess) à partir d'URL qui sont présentes dans ton site, et à les transmettre au module php sous forme de variables globales.

au lieu de placer des url encodées sous la forme peu lisible par les moteur de reherche exemple.php?var=$1&var2=$2

tu peux, une fois la regle mise en place, les écrire sous cette forme : exemple-1-2.html


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Message le Ven Fév 22, 2008 17:14

Tu as du mal lire un truc ...
il faut que les liens de ton site soient :
Code: Tout sélectionner
<a href="exemple-$1-$2.html">lien</a>


Si c'est l'URL de ta page PHP qui est affichée, c'est qu'il y a un binz


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Ven Fév 22, 2008 17:21

Ce qui implique notamment que je doive réécrire tous les liens internes du site au format html, après avoir mis en place les règles de réécriture?

Dans le cas d'un formulaire de recherche avec de multiples entrées par exemple, qui génère des pages à 7 variables et où les combinaisons de sortie sont innombrables, comment faire?

D'une manière générale je ne vois pas très bien comment effectuer la mise en place pour les pages dynamiques? Ce n'est pas la reecriture en soi qui me pose probleme, mais la mise en place globale.

Enfin, quid du pb de contenu dupliqué, lorsque GGBot indexera des pages dont il a déjà le contenu sous une autre URL?

Merci.


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Message le Ven Fév 22, 2008 17:26

Alors :

Pour les pages issues des formulaire, pas de souci, les moteurs ne savent pas utiliser les formulaires.

Pour le reste, Oui, il te faudra ;

- modifier tous les liens du site au format "réécrit"
- mettre en place des redirections 301 des pages exemple.php?var=$1&var2=$2... vers les pages exemple-$1-$2.html pour éviter le duplicate content.


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Ven Fév 22, 2008 18:09

C'est beaucoup plus clair a présent, merci.

Dernier éclaircissement, mais au pire je retournerai fouiller dans les multiples topics qui semblent parler de ça.

Au sujet des redirects 301, si je termine ma RewriteRule ^test\.html$ /test.php par [R=301], c'est la page html qui est redirigée vers la page php et non l'inverse. Bigre.

ET même si on sort on peut du cadre de ce topic, Il doit bien y avoir une solution pour indexer et mettre a dispo des moteurs des urls réécrites a partir de ces pages générées par formulaire? Une piste? Sinon c'est un matériel de référencement fantastique qui est gaspille.

merci en tous cas pour vos réponses rapides et claires. Voila du forum comme on aime :D

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Ven Fév 22, 2008 18:32

En fait, tu veux le beurre et l'argent du beurre :wink:

Les pages html doivent etr einterpretées par des pages php
les pges php doivent etre récrites en html.

C'est possible, en utilisant un paramètre bidon en plus (merci webmasterlamogere...).

Par exemple si on a les pages exemple-par1-par2.html et exemple.php?var1=par1&var2=par2, tu peux utiliser les deux règles suivantes, de mémoire:

Code: Tout sélectionner
RewriteRule ^exemple-([^-]+)-([^-]+)\.html exemple.php?stop&var1=$1&var2=$2 [L]

RewriteCond %{QUERY_STRING} ^var1=(.*)&var2=(.*)$
RewriteRule exemple\.php exemple-%1-%2.html? [R=301,L]


La premiere doit correspondre plus ou moins a ce que tu fais déjà. La deuxième est une redirection externe des php vers les html. Ca permet d'indexer les html au lieu des php dans les moteurs.

Edit: j'ai changé de place le parametre stop


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Ven Fév 22, 2008 22:06

Merci pour l'argent du beurre 8)

Je testerai dans le w-end, avant de revenir poster le résultat des courses.


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Dim Juil 20, 2008 0:46

Bonjour. Happé par d'autres projets en cours, j'avais laissé ce sujet en plan, mais pas oublié! :)
En effet, super le tuyau de redirect permanent:
Code: Tout sélectionner
#RewriteRule ^([0-9]+)-biathlon-handisport-([^/]+)$  /actus.php?stop&num=$1&titre=$2 [L]
#RewriteCond %{QUERY_STRING} ^num=(.*)&titre=(.*)$
#RewriteRule actus\.php http://www.monsite.fr/%1-biathlon-handisport-%2? [R=301,L]

Je poste ce up pour ce qui suit, car là, oh stupeur, ça ne marche plus, ça fait à peu près 69 fois que je vérifie la similitude du code, mais NADA, la redirection ne s'effectue pas quand je saisis l'URL dynamique?! :roll:
Code: Tout sélectionner
RewriteRule ^/page,([0-9]+)$              /index.php?stop&page=$1 [L]
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule index\.php http://www.monsite.fr/zenphoto/page,%1? [R=301,L]


WRInautes éclairés, ne me laissez pas dans mon obscure ignorance.

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Lun Juil 21, 2008 8:18

Tu as mis un / de trop au début de ta première règle ...

Essaie ça:

Code: Tout sélectionner
RewriteRule ^page,([0-9]+)$              /index.php?stop&page=$1 [L]
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule index\.php http://www.monsite.fr/zenphoto/page,%1? [R=301,L]


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Lun Juil 21, 2008 9:15

Hello Vap merci pour ta réponse

Non si j'enlève ce / je me retrouve à un mauvais niveau d'arborescence et je perds tous les liens vers les css et les js.
La 1e règle fonctionne d'ailleurs bien:

Code: Tout sélectionner
RewriteRule ^/page,([0-9]+)$              /index.php?stop&page=$1 [L]

C'est le redirect permanent qui ne marche pas:

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule index\.php http://www.monsite.fr/zenphoto/page,%1? [R=301,L]


J'ai bien mis le stop de lamogère :) dans la rewriteRule, j'ai vérifié le RewriteCond...

Pourtant si la condition était vérifiée il devrait se passer qq chose, même mal?

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Lun Juil 21, 2008 10:06

Ta page index.php est à la racine?

Essaie d'enlever tout sauf ce qui suit pour tester cette règle:

Code: Tout sélectionner
RewriteRule index\.php http://www.monsite.fr/zenphoto/page? [R=301,L]


Si tu entres -http://www.monsite.fr/index.php l'adresse doit etre changée en -http://www.monsite.fr/zenphoto/page

Ensuite tu met la règle complete:

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule index\.php http://www.monsite.fr/zenphoto/page,%1? [R=301,L]


Si tu entres -http://www.monsite.fr/index.php?page=1 l'adresse doit etre changée en -http://www.monsite.fr/zenphoto/page,1


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Lun Juil 21, 2008 13:09

Non, c'est l' index.php du répertoire /zenphoto/ et j'ai un RewriteBase /zenphoto

pour y voir plus clair voici l'intégralité du .htaccess

Code: Tout sélectionner
# répertoire zenphoto

RewriteEngine On
RewriteBase /zenphoto
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^.*$ - [R,L]
RewriteRule   ^admin/?$                        zen/admin.php [R,L]

#règle citée dans le topic, seule la 1e ligne fonctionne:
#RewriteRule ^/page,([0-9]+)$              /index.php?stop&page=$1 [L,QSA]
#RewriteCond %{QUERY_STRING} ^page=(.*)$
#RewriteRule /index\.php /page,%1? [R=301,L]

#ou, ce qui revient au même que ci-dessus, ici c'est la 3e ligne qui fonctionne:
RewriteCond %{QUERY_STRING} ^page=([0-9]+)$
RewriteRule ^index\.php$ /page,%1? [R=301,L]
RewriteRule ^/page,([0-9]+)$ /index.php?page=$1&rw [L,QSA]

#idem, seule la 1e ligne fonctionne
RewriteRule ^([^/]+)/?$                    index.php?stop&album=$1 [L,QSA]
RewriteCond %{QUERY_STRING} ^album=(.*)$
RewriteRule index\.php http://www.objectif-vancouver-2010.fr/zenphoto/%1/? [R=301,L]


#celle-ci n'a pas encore son R=301
RewriteRule ^([^/]+),page,([0-9]+)?$      index.php?album=$1&page=$2 [L,QSA]


Merci

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Lun Juil 21, 2008 13:30

Tu as mis un RewriteBase /zenphoto ou RewriteBase /zenphoto/ ?

En principe, les répertoires finissent par / dans apache.

Si tu n'a pas mis le / à la fin, je comprend qu'il faille que tu le mette au début de chaque règle...

Le .htaccess que tu as mis est a la racine, ou dans /zenphoto/ ?


raoux
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 20
Inscription: 4 Juil 2006

Message le Lun Juil 21, 2008 13:41

J'ai mis RewriteBase /zenphoto

Le .htaccess est dans /zenphoto/

LOgik ton commentaire sur les /

je mets ça au propre de suite

eclairage sur les principes de l'url rewriting

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité