WRInaute occasionnel
Hello,
C'est sans doute moi mais je n'ai pas trouvé de tutoriel pour les Rewrite Rules sur le site. Je vous propose donc le mien. Vous verrez c'est etonnament facile.
Principe:
L'url rewriting permet d'utiliser des
urls toute simples au lieu d'url longues et complexes
maPage-val1-val2-val3.html
à la place de
maPage.php?var1=val1&var2=val2&var3=val3
IL NE FAIT PAS LA TRANSFO AUTOMATIQUE DE
maPage.php?var1=val1&var2=val2&var3=val3
EN
maPage-val1-val2-val3.html
Vous devez vous meme modifier l'ecriture des URL DANS VOTRE CODE SOURCE.
Avantages:
Les bots suivront les liens simplifiés et indexeront votre site en
profondeur. Traitement qui etait réservé avec les URL dynamiques que pour les gros sites à haut PR
Inconvénients:
Il faut un serveur à la hauteur - car cela consomme en ressource.
Il faut réécrire les liens dans ses pages.
Comment ca marche?
Vous devez ajouter les regles de réecriture dans le fichier .htaccess
et activer le mod
ex:
RewriteEngine on
RewriteRule \photo-([0-9]+)\.html$ /photo.php?id=$1
Et réecrire vos liens dans vos pages.
L'url rewriting décortiqué:
D'abord il faut identifier les liens que vous allez réecrire:
Comme je suis photographe j'ai un site qui gére des photos, des albums
(appelés event) et des portfolios. Chacunes de ces pages sont à la racine (optimisation google)
portfolio.php?part=2
portfoliodetail.php?id=41&part=2
portfoliodetail.php?part=2&order=22
event.php?id=20
photo.php?id=527
photo.php?next=527&event=20
photo.php?prev=528&event=20
index.php?language=FR
Dès que vous avez listé les URL vous devez concevoir le format des nlles
URLs. Elles deviennent donc:
portfolio-2.html
portfoliodetail-id-41-22.html
portfoliodetail-order-2-22.html
event-20.html
photo-527.html
photo-next-527-20.html
photo-prev-528-20.html
indexFR.html
L'etape suivante consiste à modifier vos codes sources pour transformer vos url en url simplifiées. Le mod d'url rewriting lui se chargera de transformer les url simplifiées en url dynamiques. Ensuite aller dans le .htaccess pour specifier les rewrite rules.
Ajouter les regles de réecriture dans le .htaccess
la 1ere concerne le portfolio.php
RewriteRule \portfolio-([0-9]+)\.html$ /portfolio.php?part=$1
\ est un caractere d'echappement qui indique un pattern à rechercher dans l'URL: ici portfolio- et .html
([0-9]+) indique une suite de chiffres qui sera placée dans une variable
$ cloture la chaine de caracteres à retrouver
/ debute la réécriture
$1 la premiere variable - correspond ici à la suite de chiffres
La 2eme url est plus complexe elle contient 2 paramétres $1 et $2
RewriteRule \portfoliodetail-id-([0-9]+)\-([0-9]+)\.html$
/portfoliodetail.php?id=$1&part=$2
....
Je laisse les autres regles de réécriture en exercice et je passe
directement à la dernière :wink:
RewriteRule \index(.+)\.html$ /index.php?language=$1
Ou . est un joker comme * en dos
Les options [] entre crochets
[L] plus de réecriture
ex
rewrite rule (.*)\.htm $1.jsp [L]
rewrite rule (.*)\.jsp $1.truc
transforme les fichiers html en jsp
et les jsp en truc
sans la directive L on n'aurait que des fichiers truc
[R] option de redirection
[R=301] redirection permanente
[R=302] redirection temporaire
ex:
RewriteRule \index(.+)\.html$ /index.php?language=$1 [R=permanent]
[QSA]
tenir compte de la query
permet de faire photo-527.html?language=FR
ex
RewriteRule \photo-([0-9]+)\.html$ /photo.php?id=$1 [QSA]
On peut combiner pls options ce qui donne par exemple [QSA,L]
BON A SAVOIR:
Il est inutile de réecrire les url pour les formulaires: les bots ne font pas d'envoi de formulaire.
Voila j'espère que vous y voyez plus clair qu'au début du post.
C'est sans doute moi mais je n'ai pas trouvé de tutoriel pour les Rewrite Rules sur le site. Je vous propose donc le mien. Vous verrez c'est etonnament facile.
Principe:
L'url rewriting permet d'utiliser des
urls toute simples au lieu d'url longues et complexes
maPage-val1-val2-val3.html
à la place de
maPage.php?var1=val1&var2=val2&var3=val3
IL NE FAIT PAS LA TRANSFO AUTOMATIQUE DE
maPage.php?var1=val1&var2=val2&var3=val3
EN
maPage-val1-val2-val3.html
Vous devez vous meme modifier l'ecriture des URL DANS VOTRE CODE SOURCE.
Avantages:
Les bots suivront les liens simplifiés et indexeront votre site en
profondeur. Traitement qui etait réservé avec les URL dynamiques que pour les gros sites à haut PR
Inconvénients:
Il faut un serveur à la hauteur - car cela consomme en ressource.
Il faut réécrire les liens dans ses pages.
Comment ca marche?
Vous devez ajouter les regles de réecriture dans le fichier .htaccess
et activer le mod
ex:
RewriteEngine on
RewriteRule \photo-([0-9]+)\.html$ /photo.php?id=$1
Et réecrire vos liens dans vos pages.
L'url rewriting décortiqué:
D'abord il faut identifier les liens que vous allez réecrire:
Comme je suis photographe j'ai un site qui gére des photos, des albums
(appelés event) et des portfolios. Chacunes de ces pages sont à la racine (optimisation google)
portfolio.php?part=2
portfoliodetail.php?id=41&part=2
portfoliodetail.php?part=2&order=22
event.php?id=20
photo.php?id=527
photo.php?next=527&event=20
photo.php?prev=528&event=20
index.php?language=FR
Dès que vous avez listé les URL vous devez concevoir le format des nlles
URLs. Elles deviennent donc:
portfolio-2.html
portfoliodetail-id-41-22.html
portfoliodetail-order-2-22.html
event-20.html
photo-527.html
photo-next-527-20.html
photo-prev-528-20.html
indexFR.html
L'etape suivante consiste à modifier vos codes sources pour transformer vos url en url simplifiées. Le mod d'url rewriting lui se chargera de transformer les url simplifiées en url dynamiques. Ensuite aller dans le .htaccess pour specifier les rewrite rules.
Ajouter les regles de réecriture dans le .htaccess
la 1ere concerne le portfolio.php
RewriteRule \portfolio-([0-9]+)\.html$ /portfolio.php?part=$1
\ est un caractere d'echappement qui indique un pattern à rechercher dans l'URL: ici portfolio- et .html
([0-9]+) indique une suite de chiffres qui sera placée dans une variable
$ cloture la chaine de caracteres à retrouver
/ debute la réécriture
$1 la premiere variable - correspond ici à la suite de chiffres
La 2eme url est plus complexe elle contient 2 paramétres $1 et $2
RewriteRule \portfoliodetail-id-([0-9]+)\-([0-9]+)\.html$
/portfoliodetail.php?id=$1&part=$2
....
Je laisse les autres regles de réécriture en exercice et je passe
directement à la dernière :wink:
RewriteRule \index(.+)\.html$ /index.php?language=$1
Ou . est un joker comme * en dos
Les options [] entre crochets
[L] plus de réecriture
ex
rewrite rule (.*)\.htm $1.jsp [L]
rewrite rule (.*)\.jsp $1.truc
transforme les fichiers html en jsp
et les jsp en truc
sans la directive L on n'aurait que des fichiers truc
[R] option de redirection
[R=301] redirection permanente
[R=302] redirection temporaire
ex:
RewriteRule \index(.+)\.html$ /index.php?language=$1 [R=permanent]
[QSA]
tenir compte de la query
permet de faire photo-527.html?language=FR
ex
RewriteRule \photo-([0-9]+)\.html$ /photo.php?id=$1 [QSA]
On peut combiner pls options ce qui donne par exemple [QSA,L]
BON A SAVOIR:
Il est inutile de réecrire les url pour les formulaires: les bots ne font pas d'envoi de formulaire.
Voila j'espère que vous y voyez plus clair qu'au début du post.