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

Discussion dans 'URL Rewriting et .htaccess' créé par sergi, 28 Novembre 2003.

  1. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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:
    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:
    -http://monsite.com/mondirectory/modules-op-modload-name-PNphpBB2-file-index.html
    sera transformé en
    Code:
    -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:
    $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:
    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:
    -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:
    -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:
    -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?
     
  2. Kmacleod
    Kmacleod WRInaute passionné
    Inscrit:
    28 Novembre 2002
    Messages:
    2 456
    J'aime reçus:
    0
    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
     
  3. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    Je pense qu'il faut mettre un bemol la dessus.
    si j'ai une page qui existe vraiment ainsi:
    Code:
    directory/fichier.html?variable=toto
    et que dans ce fichier il y a un lien avec une url relative comme ceci:
    Code:
    <a href=page2.html>Un lien vers  la page 2</a>
    ( et non pas
    Code:
    <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 !
     
  4. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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 :)
    https://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..
     
  5. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
  6. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 672
    J'aime reçus:
    749
    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 !
     
  7. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    Ok chef.

    Bon que pensez-vous de la regle universelle:

    Code:
    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 ...
     
  8. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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:
    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(); // 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]
     
  9. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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 !
     
  10. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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 ? :?
     
  11. George Abitbol
    George Abitbol WRInaute passionné
    Inscrit:
    6 Juin 2003
    Messages:
    1 519
    J'aime reçus:
    0
  12. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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 :)
     
  13. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 672
    J'aime reçus:
    749
    as-tu essayé de faire une recherche dans la FAQ sur ce site ?
    par exemple "code 200"
     
  14. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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...
     
  15. sergi
    sergi WRInaute discret
    Inscrit:
    28 Novembre 2003
    Messages:
    123
    J'aime reçus:
    0
    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]
     
Chargement...
Similar Threads - set regles ultime Forum Date
Variables SetEnv dans un fichier htaccess URL Rewriting et .htaccess 25 Décembre 2021
srcset (img) et pagespeedinsight Débuter en référencement 12 Avril 2021
Compatibilité Thunderbird 78.8.1 et charset 7 bits. Le café de WebRankInfo 5 Avril 2021
Problème calcul d'offset UTC par getTransitions ou DateTime. Développement d'un site Web ou d'une appli mobile 21 Novembre 2020
SEO pour page encodée en ANSI avec charset iso 8859-1 Référencement Google 15 Octobre 2020
Certaines campagnes email (not set) avec CA inexplicablement élevé Google Analytics 30 Avril 2019
je bosse en chaussettes ! (concours de référencement) Débuter en référencement 11 Janvier 2019
Possible déclarer __set et __get en mode private ? Développement d'un site Web ou d'une appli mobile 21 Juillet 2017
Comment faire un grecaptcha.reset sans Javascript Google : l'entreprise, les sites web, les services 14 Mars 2017
Rich Snipset (boite à droite sur Google) afficher nombre de votes Référencement Google 28 Février 2017
se passer d'un SetTimeout dans Jquery Développement d'un site Web ou d'une appli mobile 23 Février 2017
Charset apache / php ? Administration d'un site Web 6 Juin 2016
(not set) dans le rapport Langues de Google Analytics Google Analytics 26 Mai 2015
Avis sur plugin Wordpress Assets minify Administration d'un site Web 6 Février 2015
Pic de visite de (not set) pour la Belgique Débuter en référencement 31 Octobre 2014
Récupérer la meta content charset et la meta refresh Développement d'un site Web ou d'une appli mobile 8 Août 2014
Soucis avec un charset trompeur, enfin je pense Développement d'un site Web ou d'une appli mobile 5 Août 2014
urls non set Débuter en référencement 2 Avril 2014
Setting Wordpress 3.8.1 Développement d'un site Web ou d'une appli mobile 15 Février 2014
MYSQL : Position d'un enregistrement dans un recordset Développement d'un site Web ou d'une appli mobile 28 Janvier 2013