Vers un set de regles ultime pour script php ...
15 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
Vers un set de regles ultime pour script php ...
La dernière version de la méthode est donnée dans un message plus bas publié le: Sam Nov 29, 2003 1:25
en ce qui concerne la réécriture pour tous les sites php qui se passent des arguments dans l'adresse, et à la lecture des forums, j'ai donc adopté du code non spécifique ci-dessous.
en pratique et par l'exemple, une page :
sera transformé en
2 problemes:
- il semble que l'expression atteint ses limites vers la 10aine de variable

Est-ce exact ? comment y remédier ?
- Est ce qqun a la fonction inverse avant d'envoyer une page au browser, il remplace toutes les url locales contenant des & et des ? et des = sous la forme corrrespondante ? Cela peut etre fait par une fonction PHP en s'inspirant du script google tap par exemple, qqun l'a deja fait de maniere générique sans spécifier les parametres?
et est ce que ca peut etre fait par apache pour etre plus rapide plutot que par php?
----
Dernieres petites questions: google n'a pas de pb avec les pages avec des noms tres longs du style
j'ai essayé au début un truc plus joli au lieu de:
Il a été dit que les _ sont à eviter car ils ne séparent pas des mots pour google. Alors mis à part / et - il y a d'autres caracteres qu'on peut utiliser ?
Ou peut etre que je fairais mieux d'utiliser _ pour que les mots cles qui figurent dans l'url et qui sont expressifs aient plus de poids dans l'url. Ce que je veux dire c'est que pour google:
en ce qui concerne la réécriture pour tous les sites php qui se passent des arguments dans l'adresse, et à la lecture des forums, j'ai donc adopté du code non spécifique ci-dessous.
- Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.+).htm$ $1.html
RewriteRule ^(.+)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*).html /$1.php?$2=$3&$4=$5&$6=$7&$8=$9&$10=$11&$12=$13&$14=$15
RewriteRule ^(.+)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*).html /$1.php?$2=$3&$4=$5&$6=$7&$8=$9&$10=$11&$12=$13
RewriteRule ^(.+)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*).html /$1.php?$2=$3&$4=$5&$6=$7&$8=$9&$10=$11
RewriteRule ^(.+)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*).html /$1.php?$2=$3&$4=$5&$6=$7&$8=$9
RewriteRule ^(.+)-(.+)-(.*)-(.+)-(.*)-(.+)-(.*).html $1.php?$2=$3&$4=$5&$6=$7
RewriteRule ^(.+)-(.+)-(.*)-(.+)-(.*).html /$1.php?$2=$3&$4=$5
RewriteRule ^(.+)-(.+)-(.*)\.html /$1.php?$2=$3
en pratique et par l'exemple, une page :
- Code: Tout sélectionner
-http://monsite.com/mondirectory/modules-op-modload-name-PNphpBB2-file-index.html
sera transformé en
- Code: Tout sélectionner
-http://monsite.com/mondirectory/modules.php?op=modload&name=PNphpBB2&file=index
2 problemes:
- il semble que l'expression atteint ses limites vers la 10aine de variable
- Code: Tout sélectionner
$1.php?$2=$3&$4=$5&$6=$7&$8=$9 cad apres $10 $11 $12 $13
Est-ce exact ? comment y remédier ?
- Est ce qqun a la fonction inverse avant d'envoyer une page au browser, il remplace toutes les url locales contenant des & et des ? et des = sous la forme corrrespondante ? Cela peut etre fait par une fonction PHP en s'inspirant du script google tap par exemple, qqun l'a deja fait de maniere générique sans spécifier les parametres?
et est ce que ca peut etre fait par apache pour etre plus rapide plutot que par php?
----
Dernieres petites questions: google n'a pas de pb avec les pages avec des noms tres longs du style
- Code: Tout sélectionner
modules-op-modload-name-modules-op-modload-name-PNphpBB2-file-index.html
j'ai essayé au début un truc plus joli au lieu de:
- Code: Tout sélectionner
-http://monsite.com/mondirectory/modules-op-modload-name-PNphpBB2-file-index.html
-http://monsite.com/mondirectory/modules-op-modload/name-PNphpBB2/file-index.html
Il a été dit que les _ sont à eviter car ils ne séparent pas des mots pour google. Alors mis à part / et - il y a d'autres caracteres qu'on peut utiliser ?
Ou peut etre que je fairais mieux d'utiliser _ pour que les mots cles qui figurent dans l'url et qui sont expressifs aient plus de poids dans l'url. Ce que je veux dire c'est que pour google:
- Code: Tout sélectionner
-http://monsite-motclé.com/mondirectoryclé/modules-op-modload-name-PNphpBB2-file-index.html
- Code: Tout sélectionner
-http://monsite-motclé.com/mondirectoryclé/modules_op_modload_name_PNphpBB2_file_index.html
Dernière édition par sergi le Dim Déc 07, 2003 16:01, édité 1 fois.
-

Kmacleod - WRInaute accro

- Messages: 3418
- Inscription: 28 Nov 2002
salut sergi
je ne te répondrais que sur une question, mais correctement
Il y a deux choses dans ce que tu veux faire
il y a url qui sera affichée et qui sera très courte
discussion.html
et avec variable
discussion-1-3-5-8.html (par exemple)
et il y a le fichier physique avec le nom du fichier php, ses variables et son chemin d'accés.
Tu es d'accord qu'avec l'url rewrite tu peux faire pointer l'un sur l'autre
La structure de ton arborescence n'a pas a être affichée obligatoirement dans l'url
Pour le nombre de variables j'en utilise jusqu'à 5 sans problèmes, je n'ai pas d'expérience au delÃ
kmacleod
je ne te répondrais que sur une question, mais correctement
Il y a deux choses dans ce que tu veux faire
il y a url qui sera affichée et qui sera très courte
discussion.html
et avec variable
discussion-1-3-5-8.html (par exemple)
et il y a le fichier physique avec le nom du fichier php, ses variables et son chemin d'accés.
Tu es d'accord qu'avec l'url rewrite tu peux faire pointer l'un sur l'autre
La structure de ton arborescence n'a pas a être affichée obligatoirement dans l'url
Pour le nombre de variables j'en utilise jusqu'à 5 sans problèmes, je n'ai pas d'expérience au delÃ
kmacleod
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
La structure de ton arborescence n'a pas a être affichée obligatoirement dans l'url
Je pense qu'il faut mettre un bemol la dessus.
si j'ai une page qui existe vraiment ainsi:
- Code: Tout sélectionner
directory/fichier.html?variable=toto
et que dans ce fichier il y a un lien avec une url relative comme ceci:
- Code: Tout sélectionner
<a href=page2.html>Un lien vers la page 2</a>
( et non pas
- Code: Tout sélectionner
<a href=http://site.com/page2.html>Un lien vers la page 2</a>
Lorsque je click sur le lien avec mon browser, il va voir que je suis sur la page directory/fichier.html et en cliquant sur le lien j'accederais en fait à -http://site.com/directory/page2.html et non pas -http://site.com/page2.html
Mais avec l'url rewriting il faut faire attention.
si j'ai une regle d'url rewriting qui me permet d'acceder au fichier.html en écrivant l'url dans le browser: -http://site.com/lien.html alors en cliquant sur le lien de la page affichée, il cherchera la page -http://site.com/page2.html qui n'existe pas.
Bref, mieux vaut ne pas mettre de '/' dans les adresses pour faire passer les parametres.
Je crois que je vais pencher pour une alternance de '-' et de '_' car mieux vaut ne pas utliser de '%' comme separateur qui pourrait faire partie d'une variable, ni de '/', je ne sais pas si google accept dans les noms de fichier les ',' '&','=','$'...
est ce que google accepte ceci:
-http://site.com/variable=132&variable2=687.html ??????
PS: 5 variables ce n'est pas bcp, $1 $2 $3 $4 $5 en fait moi comme tu as vu, j'ai le nom des parametre et leur valeur, ansi que le nom de la page qui doivent faire partie de l'expression réguliere, et meme avec 5 variables php ca fait donc 11 champs distincts dans l'expression réguliere et c'est deja au dessus de la limite !
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
Voici quelques url longues que j'ai trouvé dans l'index de google.
pour voir comment s'est fait.
http://www.mirror.co.uk/news/allnews/co ... _page.html
http://www.nolo.com/lawcenter/ency/arti ... 540CC4CB1E
http://iccoventry.icnetwork.co.uk/0100n ... _page.html
http://www.masternewmedia.org/2003/04/3 ... eserve.htm
Et en voici une qui n'est pas ds l'index google, mais son format doit etre ok vu que c'est du google
http://www.google.com/search?num=100&hl ... gle+Search
Il semble donc que la meilleur solution soit -http://monsite.com/page?variable=parametre&var2=par2.php ...
Tiens, il faudrait faire un concours dans un autre fil de discussion, Ã celui qui trouve l'url la plus longue dans l'index de google ! si ca n'existe pas deja qqpart..
pour voir comment s'est fait.
http://www.mirror.co.uk/news/allnews/co ... _page.html
http://www.nolo.com/lawcenter/ency/arti ... 540CC4CB1E
http://iccoventry.icnetwork.co.uk/0100n ... _page.html
http://www.masternewmedia.org/2003/04/3 ... eserve.htm
Et en voici une qui n'est pas ds l'index google, mais son format doit etre ok vu que c'est du google
http://www.google.com/search?num=100&hl ... gle+Search
Il semble donc que la meilleur solution soit -http://monsite.com/page?variable=parametre&var2=par2.php ...
Tiens, il faudrait faire un concours dans un autre fil de discussion, Ã celui qui trouve l'url la plus longue dans l'index de google ! si ca n'existe pas deja qqpart..
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
voila d'autres url, toujours tirées de l'index de google:
http://jimworld.com/apps/printable.foru ... n::thread/
et
http://www.mail-archive.com/cms-list@cm ... 00843.html
http://jimworld.com/apps/printable.foru ... n::thread/
et
http://www.mail-archive.com/cms-list@cm ... 00843.html
-

WebRankInfo - Administrateur du site

- Messages: 19422
- Inscription: 19 Avr 2002
quand tu écris des exemples avec monsite.com, peux-tu éviter de créer des URL cliquables ? ajoute un tiret devant par exemple
et utilise le style "Code" pour le code comme celui tapé dans le .htaccess
Merci !
et utilise le style "Code" pour le code comme celui tapé dans le .htaccess
Merci !
Dernière édition par WebRankInfo le Sam Nov 29, 2003 0:10, édité 1 fois.
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
Ok chef.
Bon que pensez-vous de la regle universelle:
qui transforme
1: -http://monsite.com/dir/modules.php.var1=par2&var3=par4&var5=par6&var7=par8.html
en
2: -http://monsite.com/dir/modules.php?var1=par2&var3=par4&var5=par6&var7=par8
J'ai l'impression que la version 1: devrait etre indexée par google ...
Bon que pensez-vous de la regle universelle:
- Code: Tout sélectionner
RewriteRule ^(.+).php.(.+).html $1.php?$2
qui transforme
1: -http://monsite.com/dir/modules.php.var1=par2&var3=par4&var5=par6&var7=par8.html
en
2: -http://monsite.com/dir/modules.php?var1=par2&var3=par4&var5=par6&var7=par8
J'ai l'impression que la version 1: devrait etre indexée par google ...
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
Voila le resultat de mon étude de regles universelles tres simples:
qui transforme les url page.php?var=param en page.php.var=param.html
avec autant de parametres qu'on veut, et qui devrait etre indexable par google.
Dans le .htaccess:
et dans les pages php tout au début (au debut de header.php pour les post/php-nuke user):
et dans les pages php tout à la fin (à la fin de footer.php pour les post/php-nuke user):
et c'est tout ce qu'il y a à faire !!!
Qu'en pensez-vous ?
--------
- Il y a encore un petit truc à regler: il ne faut pas ré-écrire les liens des pages php vers des sites exterieurs qui sont sous la forme php?var ... si qqun se sent le courage de modifier ca...[/b]
qui transforme les url page.php?var=param en page.php.var=param.html
avec autant de parametres qu'on veut, et qui devrait etre indexable par google.
Dans le .htaccess:
- Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.+)\.php\.(.+)\.html $1.php?$2
et dans les pages php tout au début (au debut de header.php pour les post/php-nuke user):
- Code: Tout sélectionner
<?php
ob_start();
?>
et dans les pages php tout à la fin (à la fin de footer.php pour les post/php-nuke user):
- Code: Tout sélectionner
<?PHP //URL rewriting modifyed by sergi
$contents = ob_get_contents(); // store buffer in $contents
ob_end_clean(); // delete output buffer and stop buffering
echo preg_replace("(\.php\?([-a-zA-Z0-9\.\%\?=\+_@\&\.,;:]+))", ".php.\\1.html", $contents);
?>
et c'est tout ce qu'il y a à faire !!!
Qu'en pensez-vous ?
--------
- Il y a encore un petit truc à regler: il ne faut pas ré-écrire les liens des pages php vers des sites exterieurs qui sont sous la forme php?var ... si qqun se sent le courage de modifier ca...[/b]
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
En tout cas ca marche, googlebot vient de voir une telle page qui avait 7 parametres en php sans broncher... yahoo !
Bon prochaine étape inclure un petit dictionnaire de correspondance pour remplacer certains noms de variable qui reviennent souvent et peu explicite comme modules, op, num,name... par une liste de keyword... puis reciproquement...
Et tout ca grace à webrankinfo !
Bon prochaine étape inclure un petit dictionnaire de correspondance pour remplacer certains noms de variable qui reviennent souvent et peu explicite comme modules, op, num,name... par une liste de keyword... puis reciproquement...
Et tout ca grace à webrankinfo !
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
200 c'est rien de grave, bien au contraire
http://selfhtml.selfhtml.com.fr/divers/ ... apitulatif
Fred
http://selfhtml.selfhtml.com.fr/divers/ ... apitulatif
Fred
-

WebRankInfo - Administrateur du site

- Messages: 19422
- Inscription: 19 Avr 2002
as-tu essayé de faire une recherche dans la FAQ sur ce site ?
par exemple "code 200" te donne : http://www.webrankinfo.com/outils/faq-s ... de-200.htm
et + précisément : http://www.webrankinfo.com/outils/faq_8_61.htm
par exemple "code 200" te donne : http://www.webrankinfo.com/outils/faq-s ... de-200.htm
et + précisément : http://www.webrankinfo.com/outils/faq_8_61.htm
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
Juste pour confirmer que ca y est! mes pages sont dans l'index de google avec la mehode que j'ai donné plus hait.
donc les pages indexees par google sont de la forme:
-http://www.monsite.com/directory/module.php.op=mod-load&name=phpBB&file=groupep&sid=bfe718798cf70c1838db55f842fb2d8c.html
ou encore unpeu différent:
- www.tagws.co.yu/html/ modules.php-op=modload&name=Recommend_Us&file=index.htm
Reste plus qu'a ne pas faire de réécriture pour les url absolue...
donc les pages indexees par google sont de la forme:
-http://www.monsite.com/directory/module.php.op=mod-load&name=phpBB&file=groupep&sid=bfe718798cf70c1838db55f842fb2d8c.html
ou encore unpeu différent:
- www.tagws.co.yu/html/ modules.php-op=modload&name=Recommend_Us&file=index.htm
Reste plus qu'a ne pas faire de réécriture pour les url absolue...
-

sergi - WRInaute discret

- Messages: 156
- Inscription: 28 Nov 2003
Dans le .htaccess:
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.+)\.php\.(.+)\.html $1.php?$2
et dans les pages php tout au début (au debut de header.php pour les post/php-nuke user):
Code:
<?php
ob_start();
?>
et dans les pages php tout à la fin (à la fin de footer.php pour les post/php-nuke user):
Code:
<?PHP //URL rewriting modifyed by sergi
$contents = ob_get_contents();
ob_end_clean();
echo preg_replace("(([=\"\' ]+[-a-zA-Z0-9\.\%\?=\+_@\&\.,;/]+)(\.php\?([-a-zA-Z0-9\.\%\?=\+_@\&\.,;:]+)))", "\\1.php.\\3.html", $contents);
?>
et c'est tout ce qu'il y a à faire !!!
Voila en rouge la nouvelle ligne qui remplace l'ancienne pour ne faire de ré-écriture que sur les url relatives, et pas absolue. comme ca, ca semble marché impecable. PS ceux qui ont peur de ralentire le site peuvent imbriquer les 2 bouts de codes php par un
if (client is not windows) { }
comme ca il n'y a que pour quelques rares visites (non windows) qui seraient ralenties. mais a vue de nez, moi j'ai pas noté de ralentissement.[/b]
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.+)\.php\.(.+)\.html $1.php?$2
et dans les pages php tout au début (au debut de header.php pour les post/php-nuke user):
Code:
<?php
ob_start();
?>
et dans les pages php tout à la fin (à la fin de footer.php pour les post/php-nuke user):
Code:
<?PHP //URL rewriting modifyed by sergi
$contents = ob_get_contents();
ob_end_clean();
echo preg_replace("(([=\"\' ]+[-a-zA-Z0-9\.\%\?=\+_@\&\.,;/]+)(\.php\?([-a-zA-Z0-9\.\%\?=\+_@\&\.,;:]+)))", "\\1.php.\\3.html", $contents);
?>
et c'est tout ce qu'il y a à faire !!!
Voila en rouge la nouvelle ligne qui remplace l'ancienne pour ne faire de ré-écriture que sur les url relatives, et pas absolue. comme ca, ca semble marché impecable. PS ceux qui ont peur de ralentire le site peuvent imbriquer les 2 bouts de codes php par un
if (client is not windows) { }
comme ca il n'y a que pour quelques rares visites (non windows) qui seraient ralenties. mais a vue de nez, moi j'ai pas noté de ralentissement.[/b]
15 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 :
- Script PHP : sites faisant un lien vers cette page ??
- script php qui permet d'envoie une pièce jointe vers email
- Comment lancer un script php à parrtir d'un autre script php ?
- optimisation php: Regles de base?
- /index.php vers /blog/index.php et / vers page.php
- [Script] - Interroger et manipuler Wordpress directement via un script PHP en crontab
- Executer script PHP puis visualiser le script Impossible?
- [SCRIPT] Glybe (proxy php) browser.php renommer les fichiers télécharger
- Script php pour liens du type http://www.monsite.com/link.php?id=152
- [resolu]p/ vers p.php OK, mais comment empecher p.php?
- Calcul du taux de liens profonds
Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
