Vers un set de regles ultime pour script php ...

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


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Vers un set de regles ultime pour script php ...

Message le Ven Nov 28, 2003 19:33

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.

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
ca ne marche plus si il y a trop de parametres :(
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
mais avec les / il se perdait et ne savait plus ou il en etait avec les url relatives de la page.
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
les 2 mots clés utiles: mondirectoryclé et motclé ont une importance de 1/10 dans l'url. (il y a 10 mots dans l'url) alors que
Code: Tout sélectionner
-http://monsite-motclé.com/mondirectoryclé/modules_op_modload_name_PNphpBB2_file_index.html
ces memes mots clés utiles ont une importance 1/4 dans l'url et c'est donc mieux. Est ce que google travaille bien comme ca?
Dernière édition par sergi le Dim Déc 07, 2003 16:01, édité 1 fois.


Kmacleod
WRInaute accro
WRInaute accro
 
Messages: 3418
Inscription: Jeu Nov 28, 2002 15:47

Message le Ven Nov 28, 2003 22:06

salut sergi
je ne te répondrais que sur une question, mais correctement :wink:
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 occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Ven Nov 28, 2003 22:41

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 occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Ven Nov 28, 2003 23:14

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..


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Ven Nov 28, 2003 23:24



WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 15896
Inscription: Ven Avr 19, 2002 19:51

Message le Ven Nov 28, 2003 23:26

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 !
Dernière édition par WebRankInfo le Sam Nov 29, 2003 0:10, édité 1 fois.


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Sam Nov 29, 2003 0:02

Ok chef.

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 occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Sam Nov 29, 2003 1:25

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:
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 occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Sam Nov 29, 2003 16:54

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 !


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Sam Nov 29, 2003 17:16

remarque j'ai un doute, a chaque fois, robotstats me dit qu'il y a un code http 200 associé à ces pages.... c'est quoi ca un code http 200 ? :?


George Abitbol
WRInaute accro
WRInaute accro
 
Messages: 1923
Inscription: Ven Juin 06, 2003 7:57

Message le Sam Nov 29, 2003 17:20

200 c'est rien de grave, bien au contraire ;)
http://selfhtml.selfhtml.com.fr/divers/ ... apitulatif

Fred


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Sam Nov 29, 2003 17:29

Ah quel soulagement ! mais du coup j'ai des pages sans code http du tout, mais bon je ne m'inquiete pas. Bon et bien j'ai réussi à prendre le deepcrawl en route ! ouf :-)


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 15896
Inscription: Ven Avr 19, 2002 19:51

Message le Sam Nov 29, 2003 17:52

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


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Dim Déc 07, 2003 15:59

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...


sergi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 156
Inscription: Ven Nov 28, 2003 19:11

Message le Dim Déc 07, 2003 22:21

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]


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 :

  • 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