La réécriture des URL &ldquo;à la volée&rdquo; - comments La réécriture des URL “à la volée” 2012-07-16T10:56:08Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment459314 2012-07-16T10:56:08Z <p>Bonjour,<br class="autobr" /> comment créer un url rewriting qui fonctionne pour les liens suivants :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>"[(#URL_PAGE{article}|parametre_url{'id_rubrique',#ID_RUBRIQUE})]"</code></pre></div> <p>?</p> <p>Je ne suis pas très bon en code et votre aide serait vraiment bienvenue!<br class="autobr" /> Merci, Mickaël.</p> La réécriture des URL “à la volée” 2012-01-17T23:26:25Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment453638 2012-01-17T23:26:25Z <p>Bonjour</p> <p>j'ai un souci de référencement google</p> <p>ex :<br class="autobr" /> <a href="http://www.mondomaine.fr/Nouvel-atelier-de-transfo-de,338.html" class="spip_url spip_out auto" rel="nofollow external">http://www.mondomaine.fr/Nouvel-atelier-de-transfo-de,338.html</a></p> <p>au lieu de<br class="autobr" /> <a href="http://www.mondomaine.fr/spip/Nouvel-atelier-de-transfo-de,338.html" class="spip_url spip_out auto" rel="nofollow external">http://www.mondomaine.fr/spip/Nouvel-atelier-de-transfo-de,338.html</a></p> <p>mon domaine pointe sur mon serveur sur une page index.html avec une anime flash<br class="autobr" /> puis le site (spip) ce trouve dans un sous dossier nommé “spip”<br class="autobr" /> ( j'utilise les url propre )</p> <p>sinon mon htaccess à la racine du site débute par ceci et je pense que mon problème vient de là</p> <p>### Configuration sous-repertoire<br class="autobr" /> # Chez la plupart des hebergeurs il faut indiquer “RewriteBase /”<br class="autobr" /> # sinon modifiez cette ligne</p> <p>RewriteBase /spip/</p> <p>malheureusement il y as énormément de référencements du site<br class="autobr" /> avec le même problème</p> <p>j'ai donc ajouté</p> <p>Redirect permanent /-Espace-Grand-Public-.html <a href="http://www.mondomaine.fr/spip/-Espace-Grand-Public-.html" class="spip_url spip_out auto" rel="nofollow external">http://www.mondomaine.fr/spip/-Espace-Grand-Public-.html</a></p> <p>et ça pour de multiples adresses ...<br class="autobr" /> Quelle est la solution pour redirigé l'ensemble des référencement google</p> <p>je ne voudrais pas faire de bourde</p> <p>merci pour toutes aide</p> <p>fabien</p> La réécriture des URL “à la volée” pour les messages des forums 2011-09-18T19:45:15Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment449855 2011-09-18T19:45:15Z <p>OUI, j'ai trouvé la solution. L'idée c'est de créer un format d'url spécial pour les forums. Et de réorienter vers un squelette thread.html avec le htaccess.<br class="autobr" /> Je te donne ce que j'ai fait mais c'est à adapter à ton site.</p> <p>Dans le htaccess, ajouter cette ligne :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code>### # Redirection des threads (forums) RewriteRule thread([0-9]+)/?(.+)?$ spip.php?page=thread&id_thread=$1 [QSA,L]</code></pre></div> <p>et ajouter en l'adaptant le fichier thread.html dans le dossier squelette :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re1">#FILTRE</span><span class="re40">{mini_html}</span> [(<span class="re1">#PARAMETRES_FORUM</span>|?) Cette balise (invisible) provoque le recalcul du forum la premiere fois qu'un message est poste (cf. inc/invalideur). ] <span class="re11"><BOUCLE_thread</span><span class="re12">(FORUMS)</span><span class="re13"> <span class="re41">{id_thread}</span></span><span class="re10">></span> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<span class="re1">#LANG</span>" lang="<span class="re1">#LANG</span>" dir="<span class="re1">#LANG_DIR</span>"> <head> <title>Question <span class="re1">#ID_THREAD</span> : <span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|textebrut</span><span class="re4">)</span><span class="re4">]</span></title> <meta name="description" content="<span class="re4">[</span><span class="re4">(</span><span class="re1">#TEXTE</span><span class="re50">|textebrut</span><span class="re50">|couper</span><span class="re40">{100}</span><span class="re4">)</span><span class="re4">]</span>" /> <span class="re21"><INCLURE<span class="re40">{fond=inc-head}</span></span><span class="re23">></span> <link rel="canonical" href="<span class="re1">#URL_SITE_SPIP</span>/thread<span class="re1">#ID_THREAD</span>/<span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|url_from_text</span><span class="re4">)</span><span class="re4">]</span>" /> </head> <body class="page_article"> <div id="page"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Entete de la page + titre du site -----------------------------------------<span class="re4">]</span> <span class="re21"><INCLURE<span class="re40">{fond=inc-entete}</span></span><span class="re23">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Fil d'Ariane et traitement logo ---------------------------------------<span class="re4">]</span> <span class="re11"><BOUCLE_HIER_ART</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{id_article=<span class="re1">#ID_ARTICLE</span>}</span></span><span class="re10">></span> <div id="hierarchie"><a href="<span class="re1">#URL_SITE_SPIP</span>/"><span class="re30"><:accueil_site:></span></a><span class="re11"><BOUCLE_ariane1</span><span class="re12">(HIERARCHIE)</span><span class="re13"><span class="re41">{id_article}</span></span><span class="re10">></span> > <a href="<span class="re1">#URL_RUBRIQUE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|couper</span><span class="re40">{60}</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></a><span class="re15"></BOUCLE_ariane1></span> > <a href="<span class="re1">#URL_ARTICLE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|couper</span><span class="re40">{60}</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></a><span class="re4">[</span> > <span class="re4">(</span><span class="re1">#<span class="re2">_thread:</span>TITRE</span><span class="re50">|couper</span><span class="re40">{60}</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></div> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGOTYPE</span><span class="re50">|==</span><span class="re40">{'1'}</span><span class="re50">|?</span><span class="re40">{' ',''}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{image,<span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_ARTICLE_RUBRIQUE</span><span class="re50">|logorond</span>{100}<span class="re50">|extraire_attribut</span>{src}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGOTYPE</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{image,<span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_ARTICLE_RUBRIQUE</span><span class="re50">|image_reduire</span>{100,100}<span class="re50">|extraire_attribut</span>{src}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">]</span> <span class="re15"></BOUCLE_HIER_ART></span> <span class="re15"></B_HIER_ART></span> <span class="re11"><BOUCLE_HIER_RUB</span><span class="re12">(RUBRIQUES)</span><span class="re13"><span class="re41">{id_rubrique=<span class="re1">#ID_RUBRIQUE</span>}</span></span><span class="re10">></span> <div id="hierarchie"><a href="<span class="re1">#URL_SITE_SPIP</span>/"><span class="re30"><:accueil_site:></span></a><span class="re11"><BOUCLE_ariane2</span><span class="re12">(HIERARCHIE)</span><span class="re13"><span class="re41">{id_article}</span></span><span class="re10">></span> > <a href="<span class="re1">#URL_RUBRIQUE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|couper</span><span class="re40">{60}</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></a><span class="re15"></BOUCLE_ariane2></span><span class="re4">[</span> > <span class="re4">(</span><span class="re1">#<span class="re2">_thread:</span>TITRE</span><span class="re50">|couper</span><span class="re40">{60}</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></div> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGOTYPE</span><span class="re50">|==</span><span class="re40">{'1'}</span><span class="re50">|?</span><span class="re40">{' ',''}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{image,<span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_ARTICLE_RUBRIQUE</span><span class="re50">|logorond</span>{100}<span class="re50">|extraire_attribut</span>{src}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGOTYPE</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{image,<span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_ARTICLE_RUBRIQUE</span><span class="re50">|image_reduire</span>{100,100}<span class="re50">|extraire_attribut</span>{src}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">]</span> <span class="re15"></BOUCLE_HIER_RUB></span> <span class="re15"><//B_HIER_ART></span> <div id="conteneur"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Contenu principal : contenu de la thread ------------------------------------------------<span class="re4">]</span> <div id="contenu"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Préparation infos auteur -------------------------------- <span class="re4">]</span> <span class="re11"><BOUCLE_TESTAUTEUR1</span><span class="re12">(CONDITION)</span><span class="re13"> <span class="re41">{si <span class="re1">#ID_AUTEUR</span><span class="re50">|></span><span class="re40">{0}</span>}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Auteur enregistré<span class="re4">]</span> <span class="re11"><BOUCLE_AUTEUR1</span><span class="re12">(AUTEURS)</span><span class="re13"><span class="re41">{id_auteur=<span class="re1">#ID_AUTEUR</span>}</span><span class="re41">{tout}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{cartouche,<div class="cartouche"><a rel='nofollow' class='nopuce' href='<span class="re4">[</span><span class="re4">(</span><span class="re1">#URL_AUTEUR</span><span class="re4">)</span><span class="re4">]</span>'> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_AUTEUR</span><span class="re50">|==</span>{''}<span class="re50">|?</span>{' ',''}<span class="re4">)</span><img src="<span class="re4">[</span><span class="re4">(</span><span class="re1">#CHEMIN</span>{auteur.png}<span class="re4">)</span><span class="re4">]</span>" alt='Membre' /><span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_AUTEUR</span><span class="re50">|!=</span>{''}<span class="re50">|?</span>{' ',''}<span class="re4">)</span><span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_AUTEUR</span><span class="re50">|logorond</span>{60}<span class="re4">)</span><span class="re4">]</span><span class="re4">]</span> </a><p><small><abbr class="published" title="<span class="re4">[</span><span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|date_iso</span><span class="re4">)</span><span class="re4">]</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|affdate_jourcourt</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span> <span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|heures</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span>:<span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|minutes</span><span class="re4">)</span><span class="re4">]</span></abbr><span class="re4">[</span>,<br/><span class="re30"><:par_auteur:></span> <a rel='nofollow' class='nopuce notvisited' href='<span class="re4">[</span><span class="re4">(</span><span class="re1">#URL_AUTEUR</span><span class="re4">)</span><span class="re4">]</span>'><span class="re4">(</span><span class="re1">#NOM</span><span class="re4">)</span></a><span class="re4">]</span><span class="re4">[</span><br/>&<span class="re1">#91</span>;<a rel='nofollow' class='nopuce' href="/ecrire/?exec=auteur_infos&id_auteur=<span class="re4">(</span><span class="re1">#ID_AUTEUR</span><span class="re4">)</span>"><span class="notvisited">Profil</span></a>&<span class="re1">#93</span>;<span class="re4">]</span><span class="re4">[</span><br/><a class="spip_out" href="<span class="re1">#URL_SITE</span>"><span class="re4">(</span><span class="re1">#NOM_SITE</span><span class="re4">)</span></a><span class="re4">]</span></small></p></div>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re15"></BOUCLE_AUTEUR1></span> <span class="re15"></BOUCLE_TESTAUTEUR1></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Auteur anonyme<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{cartouche,<div class="cartouche"><img src="<span class="re4">[</span><span class="re4">(</span><span class="re1">#CHEMIN</span>{anonyme.png}<span class="re4">)</span><span class="re4">]</span>" alt='Non-Membre' /><p><small><abbr class="published" title="<span class="re4">[</span><span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|date_iso</span><span class="re4">)</span><span class="re4">]</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|affdate_jourcourt</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span> <span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|heures</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span>:<span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|minutes</span><span class="re4">)</span><span class="re4">]</span></abbr><span class="re4">[</span>,<br/><span class="re30"><:par_auteur:></span> <span class="re4">(</span><span class="re1">#NOM</span><span class="re4">)</span><span class="re4">]</span></small></p></div>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re15"><//B_TESTAUTEUR1></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=box_start}</span><span class="re40">{boxtype=3}</span> <span class="re40">{img1-file=<span class="re1">#GET</span>{image}}</span> <span class="re40">{img1-class=img-article}</span> <span class="re40">{text-title=<big><span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|supprimer_numero</span><span class="re50">|textebrut</span><span class="re4">)</span><span class="re4">]</span></big>}</span> <span class="re40">{text-class=<span class="re1">#EDIT</span>{titre} titre text-title-article <span class="re1">#EDIT</span>{titre}}</span> <span class="re40">{text-subtitle=<span class="re4">[</span><span class="re4">(</span><span class="re1">#SOUSTITRE</span><span class="re4">)</span><br /><span class="re4">]</span><span class="re4">[</span><span class="re4">(</span><span class="re1">#GET</span>{cartouche}<span class="re4">)</span><span class="re4">]</span>}</span> <span class="re40">{text-subtitle-class=soustitre}</span> <span class="re40">{text-tag=h1}</span> <span class="re4">)</span><span class="re4">]</span> <div class="article"> <span class="re4">[</span><p class="<span class="re1">#EDIT</span><span class="re40">{hyperlien}</span> lien"><span class="re30"><:voir_en_ligne:></span> : <a href="<span class="re4">(</span><span class="re1">#URL_SITE</span><span class="re4">)</span>" class="spip_out"><span class="re4">[</span><span class="re4">(</span><span class="re1">#NOM_SITE</span><span class="re50">|sinon</span><span class="re40">{<span class="re4">[</span><span class="re4">(</span><span class="re1">#URL_SITE</span><span class="re50">|couper</span>{80}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span></a></p><span class="re4">]</span> <span class="re4">[</span><div id="texte" class="<span class="re1">#EDIT</span><span class="re40">{texte}</span> <span class="re1">#EDIT</span><span class="re40">{fichier}</span> forum-texte"><span class="re4">(</span><span class="re1">#TEXTE</span><span class="re0">*</span><span class="re50">|accordeon</span><span class="re50">|autoriser_php</span><span class="re50">|br</span><span class="re50">|propre</span><span class="re50">|liens_ouvrants</span><span class="re50">|image_reduire</span><span class="re40">{560,0}</span><span class="re4">)</span></div><span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Document lié au message --------------------------------<span class="re4">]</span> <span class="re11"><BOUCLE_doc_lien</span><span class="re12">(spip_documents_liens)</span><span class="re13"> <span class="re41">{id_objet=<span class="re1">#ID_FORUM</span>}</span> <span class="re41">{objet=forum}</span> </span><span class="re10">></span> <span class="re11"><BOUCLE_doc</span><span class="re12">(DOCUMENTS)</span><span class="re13"> <span class="re41">{id_document=<span class="re1">#ID_DOCUMENT</span>}</span></span><span class="re10">></span> [(<span class="re1">#LOGO_DOCUMENT</span>|<span class="re1">#URL_DOCUMENT</span>)] <span class="re15"></BOUCLE_doc></span> <span class="re15"></BOUCLE_doc_lien></span> <span class="re4">[</span><p class="<span class="re1">#EDIT</span><span class="re40">{hyperlien}</span> forum-lien"><span class="re30"><:voir_en_ligne:></span> : <a href="<span class="re4">(</span><span class="re1">#URL_SITE</span><span class="re4">)</span>" rel="nofollow" class="spip_out"><span class="re4">[</span><span class="re4">(</span><span class="re1">#NOM_SITE</span><span class="re50">|sinon</span><span class="re40">{<span class="re4">[</span><span class="re4">(</span><span class="re1">#URL_SITE</span><span class="re50">|couper</span>{80}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span></a></p><span class="re4">]</span> <p class="forum-repondre-message"><a class="spip_in notvisited" href="#repondre"><span class="re30"><:repondre_message:></span> &<span class="re1">#40</span>;<span class="re1">#NOM</span>&<span class="re1">#41</span>;</a></p> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> prépare une partie du formulaire de déplacement du message qui est inclu dans inc_deplacer_forum pour que le calcul ne soit fait qu'une seule fois et pas pour chaque message du forum uniquement pour l'administrateur<span class="re4">]</span> <span class="re11"><BOUCLE_test_session1</span><span class="re12">(CONDITION)</span><span class="re13"><span class="re41">{si <span class="re1">#SESSION</span><span class="re40">{statut}</span><span class="re50">|==</span><span class="re40">{0minirezo}</span><span class="re50">|oui</span>}</span></span><span class="re10">></span> ADMIN <span class="re1">#SET</span><span class="re40">{select_rub,<select name="rubrique_dest" style="width:200px;">}</span> <span class="re11"><BOUCLE_depforum_rubriques</span><span class="re12">(RUBRIQUES)</span><span class="re13"><span class="re41">{tout}</span><span class="re41">{par titre}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{select_rub,<span class="re1">#GET</span>{select_rub} <option value="<span class="re1">#ID_RUBRIQUE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></option>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re15"></BOUCLE_depforum_rubriques></span> <span class="re1">#SET</span><span class="re40">{select_rub,<span class="re1">#GET</span><span class="re0">*</span>{select_rub}</select>}</span> <span class="re1">#SET</span><span class="re40">{select_art,<select name="article_dest" style="width:200px;">}</span> <span class="re11"><BOUCLE_depforum_articles</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{tout}</span><span class="re41">{par titre}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{select_art,<span class="re1">#GET</span>{select_art} <option value="<span class="re1">#ID_ARTICLE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#TITRE</span><span class="re50">|supprimer_numero</span><span class="re4">)</span><span class="re4">]</span></option>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re15"></BOUCLE_depforum_articles></span> <span class="re1">#SET</span><span class="re40">{select_art,<span class="re1">#GET</span><span class="re0">*</span>{select_art}</select>}</span> <span class="re15"></BOUCLE_test_session1></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SESSION</span><span class="re40">{statut}</span><span class="re50">|==</span><span class="re40">{0minirezo}</span><span class="re50">|oui</span><span class="re4">)</span> <span class="re21"><INCLURE<span class="re40">{fond=inc_supprimer_forum}</span><span class="re40">{id_forum=<span class="re1">#ID_FORUM</span>}</span></span><span class="re23">></span> <span class="re21"><INCLURE<span class="re40">{fond=inc_deplacer_forum}</span><span class="re40">{id_forum=<span class="re1">#ID_FORUM</span>}</span><span class="re40">{select_rub=<span class="re1">#GET</span>{select_rub}}</span><span class="re40">{select_art=<span class="re1">#GET</span>{select_art}}</span></span><span class="re23">></span> <span class="re4">]</span> <div class='forum-fil'> <span class="re15"><B_forums_fils></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> le bandeau de pub au début de l'article ------------------------------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#CONFIG</span><span class="re40">{'article/pub2'}</span><span class="re50">|==</span><span class="re40">{'0'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#NO_PUB</span><span class="re50">|==</span><span class="re40">{'oui'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-pub2}</span><span class="re40">{id_article}</span><span class="re4">)</span><span class="re4">]</span> <br clear='all'> <span class="re4">]</span> <span class="re4">]</span> <ul class='forum'> <span class="re11"><BOUCLE_forums_fils</span><span class="re12">(FORUMS)</span><span class="re13"><span class="re41">{id_parent}</span><span class="re41">{par date}</span></span><span class="re10">></span> <li> <div class="forum-message" > <div class="forum-chapo"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Infos Auteur --------------------<span class="re4">]</span> <span class="re11"><BOUCLE_TESTAUTEUR2</span><span class="re12">(CONDITION)</span><span class="re13"> <span class="re41">{si <span class="re1">#ID_AUTEUR</span><span class="re50">|></span><span class="re40">{0}</span>}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Auteur enregistré<span class="re4">]</span> <span class="re11"><BOUCLE_AUTEUR2</span><span class="re12">(AUTEURS)</span><span class="re13"><span class="re41">{id_auteur=<span class="re1">#ID_AUTEUR</span>}</span><span class="re41">{tout}</span></span><span class="re10">></span> <a rel='nofollow' href="<span class="re1">#URL_AUTEUR</span>"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_AUTEUR</span><span class="re50">|!=</span><span class="re40">{''}</span><span class="re50">|?</span><span class="re40">{' ',''}</span><span class="re4">)</span><span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_AUTEUR</span><span class="re50">|logorond</span><span class="re40">{60}</span><span class="re4">)</span><span class="re4">]</span><span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_AUTEUR</span><span class="re50">|==</span><span class="re40">{''}</span><span class="re50">|?</span><span class="re40">{' ',''}</span><span class="re4">)</span><img src="<span class="re4">[</span><span class="re4">(</span><span class="re1">#CHEMIN</span><span class="re40">{auteur.png}</span><span class="re4">)</span><span class="re4">]</span>" alt='Membre' /><span class="re4">]</span> </a> <div class="<span class="re1">#EDIT</span><span class="re40">{titre}</span> forum-titre"><a href="#forum<span class="re1">#ID_FORUM</span>" name="forum<span class="re1">#ID_FORUM</span>" id="forum<span class="re1">#ID_FORUM</span>"><span class="re1">#TITRE</span></a></div> <small><span class="re4">[</span><span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|affdate_jourcourt</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span> <span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|heures</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span>:<span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|minutes</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span>, <span class="re30"><:par_auteur:></span> <a href="<span class="re1">#URL_AUTEUR</span>"><span class="<span class="re1">#EDIT</span><span class="re40">{qui}</span> notvisited"><span class="re4">(</span><span class="re1">#NOM</span><span class="re50">|couper</span><span class="re40">{80}</span><span class="re4">)</span></span></a><span class="re4">]</span> [<a rel='nofollow' href="/ecrire/?exec=auteur_infos%26id_auteur=<span class="re1">#ID_AUTEUR</span>"><span class="notvisited">Profil</span></a>] <a class="spip_out" href="<span class="re1">#URL_SITE</span>"><span class="re1">#NOM_SITE</span></a></small> <span class="re15"></BOUCLE_AUTEUR2></span> <span class="re15"></BOUCLE_TESTAUTEUR2></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Auteur anonyme<span class="re4">]</span> <img src="<span class="re1">#CHEMIN</span><span class="re40">{anonyme.png}</span>" alt='Non-Membre' /> <strong class="<span class="re1">#EDIT</span><span class="re40">{titre}</span> forum-titre"><a href="#forum<span class="re1">#ID_FORUM</span>" name="forum<span class="re1">#ID_FORUM</span>" id="forum<span class="re1">#ID_FORUM</span>"><span class="re1">#TITRE</span></a></strong> <small><span class="re4">[</span><span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|affdate_jourcourt</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span> <span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|heures</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span>:<span class="re4">(</span><span class="re1">#DATE</span><span class="re50">|minutes</span><span class="re4">)</span><span class="re4">]</span><span class="re4">[</span>, <span class="re30"><:par_auteur:></span> <span class="<span class="re1">#EDIT</span><span class="re40">{qui}</span>"><span class="re4">(</span><span class="re1">#NOM</span><span class="re50">|couper</span><span class="re40">{80}</span><span class="re4">)</span></span><span class="re4">]</span></small> <span class="re15"><//B_TESTAUTEUR2></span> </div> <div class="<span class="re1">#EDIT</span><span class="re40">{texte}</span> forum-texte"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#TEXTE</span><span class="re50">|lignes_longues</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">[</span><p class="<span class="re1">#EDIT</span><span class="re40">{hyperlien}</span> forum-lien"><span class="re30"><:voir_en_ligne:></span> : <a href="<span class="re4">(</span><span class="re1">#URL_SITE</span><span class="re4">)</span>" rel="nofollow" class="spip_out"><span class="re4">[</span><span class="re4">(</span><span class="re1">#NOM_SITE</span><span class="re50">|sinon</span><span class="re40">{<span class="re4">[</span><span class="re4">(</span><span class="re1">#URL_SITE</span><span class="re50">|couper</span>{80}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span></a></p><span class="re4">]</span> <br class='nettoyeur' /> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Document lié au message --------------------------------<span class="re4">]</span> <span class="re11"><BOUCLE_doc_lien_fils</span><span class="re12">(spip_documents_liens)</span><span class="re13"> <span class="re41">{id_objet=<span class="re1">#ID_FORUM</span>}</span> <span class="re41">{objet=forum}</span> </span><span class="re10">></span> <span class="re11"><BOUCLE_doc_fils</span><span class="re12">(DOCUMENTS)</span><span class="re13"> <span class="re41">{id_document=<span class="re1">#ID_DOCUMENT</span>}</span></span><span class="re10">></span> [(<span class="re1">#LOGO_DOCUMENT</span>|<span class="re1">#URL_DOCUMENT</span>)] <span class="re15"></BOUCLE_doc_fils></span> <span class="re15"></BOUCLE_doc_lien_fils></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SESSION</span><span class="re40">{statut}</span><span class="re50">|==</span><span class="re40">{0minirezo}</span><span class="re50">|oui</span><span class="re4">)</span> <span class="re21"><INCLURE<span class="re40">{fond=inc_supprimer_forum}</span><span class="re40">{id_forum=<span class="re1">#ID_FORUM</span>}</span></span><span class="re23">></span> <span class="re21"><INCLURE<span class="re40">{fond=inc_racine_forum}</span><span class="re40">{id_forum=<span class="re1">#ID_FORUM</span>}</span></span><span class="re23">></span> <span class="re4">]</span> <span class="re4">[</span><p class="forum-repondre-message"><a class="spip_in notvisited" href="<span class="re4">(</span><span class="re1">#PARAMETRES_FORUM</span><span class="re50">|url_reponse_forum</span><span class="re50">|parametre_url</span><span class="re40">{'url_retour',<span class="re1">#SELF</span>}</span><span class="re4">)</span>"><span class="re30"><:repondre_message:></span> &<span class="re1">#40</span>;<span class="re1">#NOM</span>&<span class="re1">#41</span>;</a></p><span class="re4">]</span> </div> </div> <span class="re11"><BOUCLE_Forums_Boucle</span><span class="re12">(boucle_forums_fils)</span><span class="re10">></span><span class="re15"></BOUCLE_Forums_Boucle></span> </li> <span class="re15"></BOUCLE_forums_fils></span> </ul> <span class="re15"></B_forums_fils></span> </div> <span class="coMULTI"><!-- forum-message --></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> la pub en fin d'article --------------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#CONFIG</span><span class="re40">{'article/pub3'}</span><span class="re50">|==</span><span class="re40">{'0'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#NO_PUB</span><span class="re50">|==</span><span class="re40">{'oui'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-pub3}</span><span class="re40">{id_article}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">]</span> <span class="re4">]</span> <br class='nettoyeur' /> </div> <span class="coMULTI"><!-- article --></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=box_end}</span><span class="re40">{boxtype=3}</span><span class="re4">)</span><span class="re4">]</span> <p id="repondre"></p> <span class="re1">#FORMULAIRE_FORUM</span><span class="re40">{<span class="re1">#SELF</span>#forum<span class="re1">#ID_FORUM</span>}</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Abonnement Ó la lettre d'informations ---------------------------------------------<span class="re4">]</span> <br class='nettoyeur' /> <span class="re4">[</span><span class="re4">(</span><span class="re1">#CONFIG</span><span class="re40">{'article/newsletter'}</span><span class="re50">|==</span><span class="re40">{'1'}</span><span class="re50">|?</span><span class="re40">{' ',''}</span><span class="re4">)</span> <span class="re1">#FORMULAIRE_SPIP_LISTES_INSCRIPTION</span><span class="re40">{<span class="re1">#CONFIG</span>{'article/newsletter_num'}}</span> <span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Affiche une formulaire de devis KELTRAVO ------------------------------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-keltravo}</span><span class="re40">{id_rubrique}</span><span class="re4">)</span><span class="re4">]</span> </div> <span class="coMULTI"><!-- contenu --></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Menu de navigation laterale -----------------------------------<span class="re4">]</span> <div id="navigation"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Navigation THELIA -------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-thelia-nav}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Affiche un tÚmoignage alÚatoire. L'option peut Ûtre dÚs/activÚe globalement dans CFG Article Si c'est le cas, l'option peut Ûtre dÚs/activÚe pour chaque article -------------------------------------------------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#NO_TEMOIN</span><span class="re50">|==</span><span class="re40">{'oui'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#CONFIG</span><span class="re40">{'article/temoin'}</span><span class="re50">|==</span><span class="re40">{'0'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re21"><INCLURE<span class="re40">{fond=inc-temoignage}</span><span class="re40">{id_article}</span></span><span class="re23">></span> <span class="re4">]</span> <span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Capture des prospects -----------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#NO_SQUEEZE</span><span class="re50">|==</span><span class="re40">{'oui'}</span><span class="re50">|?</span><span class="re40">{'',' '}</span><span class="re4">)</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-squeeze}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Affiche un encart pour inscription Artisans KELTRAVO -----------------------------------------------------------<span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-keltravo-artisan}</span><span class="re4">)</span><span class="re4">]</span> </div><span class="coMULTI"><!-- fin navigation --></span> </div><span class="coMULTI"><!-- fin conteneur --></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Pied de page <span class="re4">]</span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#INCLURE</span><span class="re40">{fond=inc-pied}</span><span class="re4">)</span><span class="re4">]</span> </div><span class="coMULTI"><!-- fin page --></span> </body> </html> <span class="re15"></BOUCLE_thread></span> <span class="re15"><//B_thread></span></code></pre></div> La réécriture des URL “à la volée” 2011-09-17T10:35:46Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment449827 2011-09-17T10:35:46Z <p>Salut Bruno, moi aussi je cherche à faire : “je souhaiterai que les messages soient bien indexés par les moteurs de recherche.” pour ne pas avoir ça :</p> <p><a href="http://www.monsite.info/spip.php?page=forum-message&id_rubrique=8&id_forum=2338" class="spip_url spip_out auto" rel="nofollow external">http://www.monsite.info/spip.php?page=forum-message&id_rubrique=8&id_forum=2338</a></p> <p>mais je ne trouve pas non plus - as tu trouvé depuis le temps ?</p> <p>merci</p> La réécriture des URL “à la volée” 2010-09-02T12:24:37Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment433884 2010-09-02T12:24:37Z <p>L'article ne parle pas de la directive RewriteBase , essentielle quand le site est hébergé dans un sous-répertoire et non pas à la racine.</p> <p>L'adresse <a href="http://immo.wildcroft.com/publication/article27.html" class="spip_url spip_out auto" rel="nofollow external">http://immo.wildcroft.com/publication/article27.html</a> est obsolète et ne permet plus d'accéder à l'article consacré au fichier .htaccess. Cet article semble toutefois être disponible ici-même :<br class="autobr" /> <a href="http://www.spip-contrib.net/Le-fichier-htaccess" class="spip_url spip_out auto" rel="nofollow external">http://www.spip-contrib.net/Le-fichier-htaccess</a></p> La réécriture des URL “à la volée” pour les messages des forums 2009-01-02T23:25:34Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment411705 2009-01-02T23:25:34Z <p>Bonjour</p> <p>Sur mon site SPIP, j'utilise les forums associés à chaque article mais aussi les forums de rubriques.</p> <p>Pour les forums de rubriques, je souhaiterai que les messages soient bien indexés par les moteurs de recherche.</p> <p>Et que donc, on y accède par des url propres au lieu d'url du type :</p> <p><a href="http://www.monsite.info/spip.php?page=forum-message&id_rubrique=8&id_forum=2338" class="spip_url spip_out auto" rel="nofollow external">www.monsite.info/spip.php?page=forum-message&id_rubrique=8&id_forum=2338</a></p> <p>Comment faire de l'url rewriting avec les pages des forums ?</p> <p>Merci</p> Tout en minuscules 2008-12-23T09:40:19Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment411432 2008-12-23T09:40:19Z <p>Bonjour,</p> <p>J'ai cherché sur le Net, mais n'ai point trouvé. Y aurait-il moyen que l'URL rewriting de SPIP convertisse toutes ses URLs en minuscules? C'est tout simple, on est culturellement habitué aux minuscules dans les URLs, et SPIP respecte la casse du titre d'origine. Existe-t-il un moyen simple de convertir et d'utiliser des URLs toutes en minuscules?</p> <p>Je précise, j'utilise SPIP 1.9.2 et bientôt — dès que j'ai trouvé des équivalences de plugins — SPIP 2.0.</p> <p>Je vous remercie d'avance.</p> La réécriture des URL “à la volée” 2008-09-05T14:29:20Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment408435 2008-09-05T14:29:20Z <p>Juste une chose que personne ne dit ! Et en local histoire de tester tout ca avant de le mettre en exploitation comment on fait ? Bon en cherchant j'ai fini par comprendre mais j'ai du changer tout mes liens de par exemple <br class="autobr" /> index.php?id=untexte <br class="autobr" /> en <br class="autobr" /> index-untexte.html</p> <p>Sinon est-ce normal de ne pas avoir eu a écrire</p> <p>AddModule mod_rewrite.c</p> <p>dans le fichier httpd.conf</p> La réécriture des URL “à la volée” 2008-06-25T19:35:47Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment407103 2008-06-25T19:35:47Z <p>Bonjour à tous!<br class="autobr" /> Juste au sujet des dossiers virtuels, (arrêtez moi si je me goure), l'ajout de la balise <base /> n'est pas forcement necessaire dans l"hypothese ou l'on insererait un “\” juste avant le slash, pour enlever au caractere sa signification veritable au sein d'une expression, ce qui donnerait un truc du genre :</p> <p>Options +FollowSymlinks</p> <p>RewriteEngine on</p> <p>RewriteRule ^(.+)\/([0-9]+)\.html$ index.php?page=$1&id=$2 [F]</p> La réécriture d'url et variante de squelette ? 2008-04-08T08:35:48Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment404913 2008-04-08T08:35:48Z <p>Je viens de découvrir les variantes de squelette, c'est Génial !<br class="autobr" /> Les réécriture d'url c'est génial !!!!<br class="autobr" /> Mais est ce que quelqu'un saurait combiner les deux ??????<br class="autobr" /> merci d'avance !</p> Empêcher le “vol” d'images 2008-03-18T21:10:28Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment404147 2008-03-18T21:10:28Z <p>Excellent article ! très pédagogique :-)</p> <p>j'ai quelques peu modifié les lignes “<i>Protégeons nos fichiers images</i>”</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://www.domaine.net/.*$ [NC] RewriteRule .*\.(gif|png|jpe?g)$ http://www.domaine.net/stop_vol.img [R=301,L]</code></pre></div> <p>le fichier “stop_vol.img” étant en fait une image (renommée) GIF ou autre ...</p> <p>c'est un peu “bourrin” mais je ne trouve pas comment faire mieux :</p> <p>- empêcher toutes les images sauf celle qui viendra en remplacement, qui pourra donc afficher un message, une bombe, un truc fun ...</p> <p>si vous trouvez ça m'intéresse,<br class="manualbr" />merci :-)</p> La réécriture des URL “à la volée” 2007-08-17T08:18:06Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment397046 2007-08-17T08:18:06Z <p>bonjour<br class="autobr" /> j'essaie de passer mon site ou plutot mes articles au format “url rewriting” mais cela ne fonctionne pas pourtant après le petit test recommandé il n'y a pas de probleme celui-ci marche (je suis chez nuxit et le rewriting est activé)pour l'instant je fais mes essais en local avec lampp.j'ai mis dans mon “htaccess” ceci en chachant que mon url de départ est celle-ci</p> <p><strong><a href="http://localhost/Lienversversion4_6/articles.php?lng=fr&pg=4" class="spip_url spip_out auto" rel="nofollow external">http://localhost/Lienversversion4_6/articles.php?lng=fr&pg=4</a></strong></p> <p>dans mon htaccess ceci</p> <p>RewriteEngine on<br class="autobr" /> RewriteRule ^nexistepas.html$ trouve.html [L] ... pour le test<br class="autobr" /> RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ article.php?lng=$1&pg=$1 [L]</p> <p>et bien sur cela ne marche pas<br class="autobr" /> une idée? merci</p> Pour ceux qui utilise la contrib URL FRIENDLY depuis 3 ans... 2006-08-24T16:17:57Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment387181 2006-08-24T16:17:57Z <p>Bavant devant les fonctionalités de SPIP 1.9, Il fallait bien un jour y passer. MAIS comment garder les 1100 aticles et 600 rubriques sous 1.8.3 si bien référencés chez Goooogle à l'aide de url friendly... Pour ceux qui souhaite faire le pas, voici la démarche:<br class="autobr" /> Pré-requis: Le kit url-friendly (le fichier inc-url-friendly.php3 surtout); je ne reviens pas sur la forme des url.</p> <p>copier inc-url-friendly.php3 en friendly.php dans ecrire/url/ de votre 1.9 en ayant changé la ligne “require...” en:</p> <p>...<br class="autobr" /> require 'ecrire/charsets/iso-8859-1.php';<br class="autobr" /> ...</p> <p>modifiez votre fichier .htaccess de la manière suivante: <br />- commentez toutes les lignes sauf celles concernant les fichiers ou repertoire existant, et RewriteEngine On ;) <br />- ajoutez la règle de réécriture:</p> <p>######### de quoi décortiquer les adresses virtuelles######################<br class="autobr" /> RewriteRule ^.*(article|rubrique|breve|auteur|mot|forum)(.*).html$ spip.php?page=$1&id_$1=$2 [QSA,L]</p> <p>Pour finir n'oubliez pas de modifier dans ecrire/mes_options.php la ligne concernant le type d'url en:</p> <p>$type_urls = 'friendly';</p> <p>le tour est joué, vous pouvez passer en 1.9 avec url-friendly, sans perdre votre référencement. Il manque certainement des choses à ce post mais je suis certains que des spécialistes vont se pencher dessus. (ATTENTION, ne sont pris en compte que les pages article|rubrique|breve|auteur|mot|forum, et bien sûr aucune garantie n'est fournie!</p> <p>à vous lire.</p> La réécriture des URL “à la volée” 2006-08-04T15:00:42Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment386880 2006-08-04T15:00:42Z <p>Bonjour,</p> <p>J'ai lu cet article (un parmi tant d'autre sur rewrite de apache) je suis entrain de virr fou avec ce module. Y a rien qui fonctionne! Je voulais modifier un url de : <a href="http://monsite.com/sgc/accueil/pid/737?parent=701" class="spip_url spip_out auto" rel="nofollow external">http://monsite.com/sgc/accueil/pid/737?parent=701</a><br class="autobr" /> en: <a href="http://monsite.com/sgc/accueil/pid/737/parent/701" class="spip_url spip_out auto" rel="nofollow external">http://monsite.com/sgc/accueil/pid/737/parent/701</a></p> <p>mais rien n'a faire j'ai essayé beaucoup de truc que j'ai vu et j'ai lu et relu la doc de apache.</p> <p>1)<br class="autobr" /> RewriteEngine On<br class="autobr" /> RewriteRule ^([0-9]+)/parent/([0-9]+)$ $1?parent=$2 [L]<br class="autobr" /> RewriteLogLevel 9<br class="autobr" /> RewriteLog rewrite.log</p> <p>2)<br class="autobr" /> RewriteEngine On<br class="autobr" /> RewriteCond<small class="fine"> </small>%<i>QUERY_STRING</i> ^parent=([0-9]+)$<br class="autobr" /> RewriteRule ^([0-9]+)/parent/([0-9]+)$ $1?parent=%1 [L]<br class="autobr" /> RewriteLogLevel 9<br class="autobr" /> RewriteLog rewrite.log</p> <p>3)</p> <p> RewriteEngine On<br class="autobr" /> RewriteCond<small class="fine"> </small>%<i>QUERY_STRING</i> ^parent=([0-9]+)$<br class="autobr" /> RewriteRule ^/sgc/accueil/pid/([0-9]+)/parent/([0-9]+)$ /sgc/accueil/pid/$1?parent=%1 [QSA]<br class="autobr" /> RewriteLogLevel 9<br class="autobr" /> RewriteLog rewrite.log</p> <p>et bien d'autre...<br class="autobr" /> tout ce que je fait n'apporte rien aucune modification. Y a t-il encore un guru sur ce forum qui peut m'aider?</p> toujours actuelle ? 2006-07-02T13:21:57Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment386501 2006-07-02T13:21:57Z <p>Bonjour,</p> <p>comme cette contrib a plus que 3 ans j'aimerais bien savoir si elle fonctionne toujours sans problème avec la version spip actuelle.</p> <p>Est-ce que quelqu'un pourrais m'éclaircir la dessus avant que je me lance à comprendre comment cela marche?</p> <p>Merci d'avance</p> <p>joz</p> La réécriture des URL “à la volée” 2006-06-09T10:08:26Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment386344 2006-06-09T10:08:26Z <p>Bonjour,</p> <p>J'ai conscience d'arriver bien après tout le monde mais je m'en sors pas là</p> <p>Je travaille avec un site qui existe déjà dont on a fait une copie locale</p> <p>J'ai easyphp 1.8, j'ai décommentés les 2 modules et l'exemple avec trouve.html marche très bien</p> <p>Or quand je reprends l'ancien fichier de redirection (qui faisait entre autre</p> <p>RewriteRule ^(.*)/(article|rubrique|breve|auteur|site)(.*).html$ $1/$2.php3?id_$2=$3 [QSA]<br class="autobr" /> RewriteRule _([0-9]+)\.html$ /article.php3?id_article=$1 [QSA]</p> <p># Un article<br class="autobr" /> RewriteRule _([0-9]+)\.html$ /article.php3?id_article=$1 [QSA,L]</p> <p>(je comprends pas bien pourquoi j'ai 2 règles pour les articles mais passons), ça ne fonctionne pas -> article464.html fait not found alors que article.php3?id_article=464&recalcul=oui marche très bien</p> <p>je suis sous spip agora j'ai donc le fichier qui se nome agora.htaccess à la racine de mon site<br class="autobr" /> J'ai essayé de le renommer en htaccess tout court mais toujours le problème, or sur le site en ligne ca fonctionne donc j'hésite à penser que les règles sont mal faites...</p> <p>Ca m'énerve en lisant l'articles j'avais l'impression que c'était clair et là paf jsuis coupée net dans mon élan >_<</p> La réécriture des URL “à la volée” 2006-05-29T14:24:14Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment386259 2006-05-29T14:24:14Z <p>bonjour, bon meme si j'ai pas forcément tout compris je doit reconnaitre que j'en ai déjà pas mal appris!!<br class="autobr" /> merci beaucoup</p> <p>cependant il me reste un petit souci: <br class="autobr" /> pour les rubriques ca marche (j'ai meme réussi à modifier l'affichage)<br class="autobr" /> les articles pas de problèmes mais pour les pages de mot-clé l'url normal (mot.php?id_mot=...) et je ne comprends pas pourquoi! quelqu'un peut m'aider?</p> La réécriture des URL “à la volée” 2006-04-03T14:02:59Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment385860 2006-04-03T14:02:59Z <p>erreur dans le texte : ne fonctionne pas non plus avec « RewriteRule ^nexistepas.html$ trouve.html [L] »</p> La réécriture des URL “à la volée” 2006-04-03T13:56:03Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment385859 2006-04-03T13:56:03Z <p>Bonjour, <br class="autobr" /> La réécriture d'url ne fonctionne pas : <br class="autobr" /> Erreur 404 systématique<br class="autobr" /> SAUF pour le test avec <br class="autobr" /> « RewriteRule ^nexistepas.html$ trouve.html [L] »</p> <p>Ma configuration :</p> <p>Serveur local (debian)</p> <p>Apache 2, PHP5, SPIP 1.8.3, Mysql 5.0.18</p> <p>mod_rewrite activé dans apache,</p> <p>url propres2 dans mes_options.php3,</p> <p>fichier .htaccess par défaut</p> <p>Une idée ?</p> La réécriture des URL “à la volée” 2006-03-23T22:43:41Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment385759 2006-03-23T22:43:41Z <p>Bon, quand on cherche, on finit toujours par trouver. Les url propres sont stockées dans la base de données !!</p> <p>Mais, existe-t-il une fonction cachée pour vider les champs stockés dans la base ?</p> <p>Bon, peut-être que ça ne sert à personne d'autre que moi, mais quand je bosse sur 5 site à la structure identique, je fais la base sur le premier, puis je la recopie sur les autres. Je n'ai plus qu'a changer quelques titre d'articles et hop !</p> La réécriture des URL “à la volée” 2006-03-23T22:22:53Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment385758 2006-03-23T22:22:53Z <p>Bonjour,<br class="autobr" /> je suis face à un petit problème dont personne n'a trouvé la solution sur le phorum : J'utilise la réécriture d'url, tout fonctionne... sauf que quand je change le titre d'un article existant, l'url ne change pas !</p> <p>Y a t il un “cache” ou sont stockées ces urls ? J'ai tout tenté, mais même en réinstallant la base sur un autre spip, c'est toujours les premières url qui apparaissent !!!!</p> <p>Help, je sèche !!</p> > La réécriture des URL “à la volée” 2005-07-18T17:26:15Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment382247 2005-07-18T17:26:15Z <p>Tu peux peut-être essayer de mettre un .htaccess dans chacun des répertoires que tu veux rediriger.</p> > La réécriture des URL “à la volée” 2005-07-17T21:16:55Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment382225 2005-07-17T21:16:55Z <p>j'ai lu tout le tutorial mais j'ai toujours pas la solution a mon probleme (bien que l'article soit extremement bien redigé)<br class="autobr" /> jaimerais empecher les gens d'aller à toute url qui n'est pas un fichier à la racine de mon hebergement (soit, avoir une redirection de tous les .php qui sont dans des sous dossiers) mais j'arrive pas à le faire, et faire une redirection pour chaque fichier serait longue et repetitive, je sui ssur qu'il y a un moyen simple.</p> <p>Si vous le connaissez merci de m'aide =)<br class="autobr" /> _Marikou</p> > La réécriture des URL “à la volée” 2005-06-03T15:12:17Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment381412 2005-06-03T15:12:17Z <p>As tu essayé d'écrire l'url directement dans la barre de navigation ?</p> <p>ex: http://monsite/rubrique1.html</p> <p>la balise #URL_RUBRIQUE renvoi l'url a la <i>old school</i> rubrique.php3?id_rubrique=2</p> <p>c'est peut être de là que vient ton soucis.</p> redirection infinie 2005-06-03T09:34:25Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment381397 2005-06-03T09:34:25Z <p>Autre solution :<br class="autobr" /> RedirectMatch (.*\.jar)$ http://domain/path/to/script.php?jarpath=$1 [L,QSA]</p> <p>Permet de ne plus faiure d'autre redirection et ajoute les autres paramètres à la fin.</p> REdirection infinie 2005-06-03T09:32:24Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment381396 2005-06-03T09:32:24Z <p>Peut-être parce que ta redirection pointe vers une adresse valide pour ta règle...</p> <p>Essaye d'ajouter [L] à la fin de la ligne pour stopper les redirections suivantes, sinon enleve le .jar après $1 et force le à l'intérieur du script.</p> > La réécriture des URL “à la volée” 2005-01-19T09:39:48Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment338832 2005-01-19T09:39:48Z <p>Bonjour!</p> <p>En gros, voici mon problème : dans une appli, je cherche à rediriger toutes les archives archive.jar dans un script appelé force-jar.php.</p> <p>Voici ma ligne de code dans le htaccess :</p> <p>RedirectMatch (.*)\.jar$ <a href="http://www.mon-serveur.com/wap/downloadservice/upload/force-jar.php?jarpath=$1.jar" class="spip_url spip_out auto" rel="nofollow external">http://www.mon-serveur.com/wap/downloadservice/upload/force-jar.php?jarpath=$1.jar</a></p> <p>mais au lieu d'éffectuer la requête, apache me fais une redirection infinie.</p> <p>c'est à dire :</p> <p><a href="http://www.mon-serveur.com/wap/downloadservice/upload/force-jar.php?jarpath=/wap/downloadservice/upload/force-jar.php?jarpath=/wap/downloadservice/upload/force-jar.php?jarpath" class="spip_url spip_out auto" rel="nofollow external">http://www.mon-serveur.com/wap/downloadservice/upload/force-jar.php?jarpath=/wap/downloadservice/upload/force-jar.php?jarpath=/wap/downloadservice/upload/force-jar.php?jarpath</a> etc...</p> <p>Une suggestion ?</p> <p>Merci</p> > écrire .htaccess AVEC spip 2004-09-18T06:06:16Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment107639 2004-09-18T06:06:16Z <blockquote class="spip"> <p> if (!$handle = fopen($filename, 'a')) <i><br class="autobr" /> echo “Impossible d'ouvrir le fichier ($filename)”;<br class="autobr" /> exit;<br class="autobr" /> </i></p> </blockquote> <p>il faut remplacer le 'a' par un 'w'. et ça marche. :-)</p> <p><a href="http://fr2.php.net/function.fopen" class="spip_url spip_out auto" rel="nofollow external">http://fr2.php.net/function.fopen</a></p> > écrire .htaccess AVEC spip 2004-09-14T20:22:45Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment104643 2004-09-14T20:22:45Z <p>ça ne marche pas bien en fait.</p> <p>le MAJ_htaccess.php3 rajoute du contenu au précédent .htaccess, alors qu'il devrait d'abbord l'effacer.<br class="autobr" /> actuellement, on a un .htaccess qui grossit, grossit, grossit. il faut le vider à la main avant de le réécrire. c'est pas très embétant mais un peu dans la mesure ou c'est censser permettre l'actualisation des url sans acces ftp ou trucs du genre.</p> <p>si quelqu'un à des pistes, pour l'insant, je ne sais pas faire.</p> <p>salut</p> > La réécriture des URL “à la volée” 2004-09-12T12:26:12Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment103459 2004-09-12T12:26:12Z <p>Bonjour,<br class="autobr" /> J'ai mis en place sur mon site la réécriture d'URL. J'utilise pour cela le fichier inc-urls-html.php3 et j'ai mis dans .htacces ceci:</p> <blockquote class="spip"> <p>RewriteEngine on</p> <p># urls spip</p> <p>RewriteRule ^article([0-9]+)\.html$ /article.php3?id_article=$1 [L]</p> <p>RewriteRule ^rubrique([0-9]+)\.html$ /rubrique.php3?id_rubrique=$1 [L]</p> <p>RewriteRule ^breve([0-9]+)\.html$ /breve.php3?id_breve=$1 [L]</p> </blockquote> <p>Cela marche sauf pour deux choses :</p> <p>- le surlignage dans le moteur de recherche : j'obtiens une url du type <i>article55.html?var_recherche=xxx</i> mais sans surlignage du mot cherché</p> <p>- la découpe d'un article en pages et le sommaire (voir <a href="http://www.spip-contrib.net/article175.html" class="spip_url spip_out auto" rel="nofollow external">http://www.spip-contrib.net/article175.html</a>) : j'obtiens une url du type <i>article55.html?artsuite=2#sommaire_1</i> mais je n'arrive pas à changer de page.</p> <p>Bref tout se passe comme si ce qui suit <i>articlexx.html</i> n'était pas interpreter.</p> <p>Merci d'avance pour votre aide.</p> écrire .htaccess AVEC spip 2004-08-22T22:09:28Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment78982 2004-08-22T22:09:28Z <p>salut</p> <p>j'ai l'impression d'avoir vraiment saisi une nouvelle dimension de la réécriture des url. alors peut-être que ce petit post deviendra une contribution avec plus d'explications.</p> <p>les 2 choses: <br />- création du .htaccess avec des boucles spip.<br /> c'est le squellette MAJ_htaccess.htlm qui écrit le .htaccess</p> <p>- éviter les boucles infinies dans la redirection d'anciens url.<br /> l'astuce, c'est de nommer autrement mes fichier .php3 de squellettes. là, c'est un petit 2 en plus. distro2.php3 à la place de distro.php3. voir aussi l'usage des RewriteCond et de ? bien placé.</p> <p>voilà en tous cas où j'en suis :</p> <p>le code que j'ai mis dans un squellette MAJ_htaccess.html un<br class="autobr" /> peu spécial :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><?php $somecontent = ' ################################## # FICHIER GENERE PAR MAJ_htaccess.php3 ################################## RewriteEngine on ################################## #URL POUR LES ARTICLES ################################## RewriteCond %{QUERY_STRING} id_article=([0-9]+) RewriteRule article.php3 /%1? [R=permanent,L] RewriteCond %{QUERY_STRING} id_article=([0-9]+) RewriteRule article-spe.php3 /%1? [R=permanent,L] RewriteRule ^([0-9]+)$ /article2.php3?id_article=$1 [QSA,L] ################################## #URL POUR LES IMPRESSIONS ################################## RewriteCond %{QUERY_STRING} id_article=([0-9]+) # ? n'est pas un caractère comme les autre. je me suis tapper la tête contre les murs # avant de comprendre que c'est le début d'une query_string et donc qu'il faut # utiliser un RewriteCond. je pensais qu'un contreslash devait faire l'affaire # ceci dit, peut-être que ça marche et que c'était d'autres choses qui foiraient # comme les boucles infinies. vu que je suis mainteant sur mon petit mac et que # je n'ais pas les antislach, je vous laisse me répondre ou tester RewriteRule imprimersans.php3 /%1.html? [R=permanent,L] # le ? renvoie la string toute vide. si on ne met pas le ?, apache la colle sans rien demander RewriteRule ^([0-9]+).html$ /imprimersans2.php3?id_article=$1 [QSA,L] # le 2 rajouté, en vrai, sur le serveur. éviter à apache de tourner en rond. # de toutes manières, on les verra plus ces url de fichiers ################################## #URL POUR LES DISTROS ################################## <BOUCLE_distro(MOTS){id_groupe=2}> # #TITRE RewriteCond %{QUERY_STRING} id_mot=#ID_MOT RewriteRule distro.php3 /#DESCRIPTIF? [R=permanent,L] RewriteRule #DESCRIPTIF /distro2.php3?id_mot=#ID_MOT [QSA,L] </BOUCLE_distro> ################################## #URL POUR LES THEMES ################################## <BOUCLE_themes(MOTS){id_groupe=1}> # #TITRE RewriteCond %{QUERY_STRING} ^id_mot=#ID_MOT$ RewriteRule theme.php3 /#DESCRIPTIF? [R=permanent,L] RewriteRule #DESCRIPTIF /theme2.php3?id_mot=#ID_MOT [QSA,L] </BOUCLE_themes> '; # on a mis tout dans $somecontent # maintenant, on va mettre $somecontent dans .htaccess # ce bout de script ne viens pas de ma tête, mais de je ne sais plus où # fr.php.net genre. $filename = '.htaccess'; // Assurons nous que le fichier est accessible en écriture if (is_writable($filename)) { // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout // Le pointeur de fichier est placé à la fin du fichier // c'est là que $somecontent sera placé if (!$handle = fopen($filename, 'a')) { echo "Impossible d'ouvrir le fichier ($filename)"; exit; } // Ecrivons quelque chose dans notre fichier. if (fwrite($handle, $somecontent) === FALSE) { echo "Impossible d'écrire dans le fichier ($filename)"; exit; } echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi"; fclose($handle); } else { echo "Le fichier $filename n'est pas accessible en écriture."; } ?></code></pre></div> <p>avec, bien entendu, un MAJ_htaccess.php3 comme à l'habitude:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><?php $fond = "MAJ_htaccess"; $delais = 24 * 3600; include ("inc-public.php3"); ?></code></pre></div> <p>quand je rentre un nouveau mot-clef, un petite visite avec mon navigateur sur MAJ_htaccess.php3 et les url sont à jour.</p> <p>(un grand merci à fil et lunar^)</p> > La réécriture des URL “à la volée” 2004-07-11T15:26:22Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment11110 2004-07-11T15:26:22Z <p>J'avais repéré sur transfert.net une autre façon de proposer les urls, sans le .html:<br class="autobr" /> <a href="http://monsite.net/a384" class="spip_url spip_out auto" rel="nofollow external">http://monsite.net/a384</a><br class="autobr" /> pour l'article 384.</p> <p>Ci-dessous <br class="autobr" /> dans .htaccess</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code>#pas de reecriture pour certaines ressources RewriteRule \.(gif|jpg|png|css|php|php3) - [NC,L] RewriteRule ^(ecrire|IMG|NAVPICS|oo)/ - [NC,L] #urls spip rediriger lancien format RewriteRule ^rubrique([0-9]+)\.html$ /r$1 [R,L] RewriteRule ^article([0-9]+)\.html$ /a$1 [R,L] RewriteRule ^breve([0-9]+)\.html$ /b$1 [R,L] RewriteRule ^secteur([0-9]+)\.html$ /s$1 [R,L] RewriteRule ^auteur([0-9]+)\.html$ /auteur$1 [R,L] RewriteRule ^site([0-9]+)\.html$ /site$1 [R,L] #urls spip RewriteRule ^r([0-9]+)$ /rubrique.php3?id_rubrique=$1 [QSA,L] RewriteRule ^a([0-9]+)$ /article.php3?id_article=$1 [QSA,L] RewriteRule ^m([0-9]+)$ /mot.php3?id_mot=$1 [QSA,L] RewriteRule ^b([0-9]+)$ /breve.php3?id_breve=$1 [QSA,L] RewriteRule ^s([0-9]+)$ /secteur.php3?id_rubrique=$1 [QSA,L] RewriteRule ^auteur([0-9]+)$ /auteur.php3?id_auteur=$1 [QSA,L] RewriteRule ^site([0-9]+)$ /site.php3?id_syndic=$1 [QSA,L] RewriteRule ^f([0-9]+)$ /forum.php3?id_article=$1 [QSA,L]</code></pre></div> <p>et dans inc-urls-court.php3</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code><?php // executer une seule fois if (defined("_INC_URLS2")) return; define("_INC_URLS2", "1"); function generer_url_article($id_article) { return "a$id_article"; } function generer_url_rubrique($id_rubrique) { return "r$id_rubrique"; } function generer_url_breve($id_breve) { return "b$id_breve"; } function generer_url_mot($id_mot) { return "m$id_mot"; } function generer_url_auteur($id_auteur) { return "auteur$id_auteur"; } function generer_url_document($id_document) { if ($id_document > 0) { $query = "SELECT fichier FROM spip_documents WHERE id_document = $id_document"; $result = spip_query($query); if ($row = spip_fetch_array($result)) { $url = $row['fichier']; } } return $url; } function recuperer_parametres_url($fond, $url) { global $contexte; return; } // // URLs des forums // // a mettre dans ecrire/inc_threads.php3 avec les autres trucs de forum function racine_forum($id_forum){ $query = "SELECT id_parent, id_rubrique, id_article, id_breve FROM spip_forum WHERE id_forum=".$id_forum; $result = spip_query($query); if($row = spip_fetch_array($result)){ if($row['id_parent']) { return racine_forum($row['id_parent']); } else { if($row['id_rubrique']) return array('rubrique',$row['id_rubrique'], $id_forum); if($row['id_article']) return array('article',$row['id_article'], $id_forum); if($row['id_breve']) return array('breve',$row['id_breve'], $id_forum); } } } function generer_url_forum($id_forum, $show_thread=false) { list($type, $id, $id_thread) = racine_forum($id_forum); if ($id_thread>0 AND $show_thread) $id_forum = $id_thread; switch($type) { case 'article': return generer_url_article($id)."#forum$id_forum"; break; case 'breve': return generer_url_breve($id)."#forum$id_forum"; break; case 'rubrique': return generer_url_rubrique($id)."#forum$id_forum"; break; default: return "forum$id_forum.html"; } } ?></code></pre></div> <p>J'ai testé sur le site, tout semble fonctionner correctement. Maintenant ce qui n'est pas clair pour moi c'est la référence au fichier ecrire/inc_threads.php3, je n'ai pas déplacé ce bout de code. <strong>Si quelqu'un peut m'éclaire...</strong></p> > La réécriture des URL “à la volée” 2004-06-30T06:00:19Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment10804 2004-06-30T06:00:19Z <p>Après test visiblement je ne tourne pas en boucle infini et les deux url ont l'air de bien fonctionner, mais est-ce correcte de procéder ainsi ?</p> <p>Merci</p> > La réécriture des URL “à la volée” 2004-06-30T05:44:53Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment10803 2004-06-30T05:44:53Z <p>Très bon article, merci encore.</p> <p>> Uzume</p> <p>A mon avis c'est au cas où tu mettes :</p> <blockquote class="spip"> <p>RewriteCond<small class="fine"> </small>%<i>HTTP_BIDULE</i> ^blabla&blibli$</p> <blockquote class="spip"> <p>Dans ce cas ça voudrais dire que HTTP_BIDULE peut valoir à la fois “blabla” et “blibli” ce qui n'a aucun sens. (Enfin c'est une supposition)</p> <p>J'aurais tout de même une question à poser.</p> <p>J'ai utilisé les régles de réécriture d'url pour un site php/mysql, ça marche nikel et j'ai donc des pages du style page-x.hmtl qui me renvoi vers page.php?id=x et j'ai donc deux url possible pour mes pages (page-x.hmtl et page.php?id=x).</p> <p>Cela peut me poser problème car si google essai d'indexer mes pages dans les deux versions il risque de me pénaliser (plusieurs pages avec le même contenu), de plus mes pages sous google sont toujours référencées sous la forme page.php?id=x après plusieurs de ses danses ce qui n'est pas très élégant.</p> <p>L'idéal pour résoudre ce problème serait de lui faire une redirection 301. Mais si je met ce code dans mon .htaccess :</p> <p>Options +FollowSymlinks<br /> RewriteEngine on<br /> RewriteRule ^(.*)/page.php?id=([0-9]+)$ $1/page-$2.html [NC,QSA,R=301,L]<br /> RewriteRule ^(.*)/page-([0-9]+)\.html$ $1/page.php?id=$2 [NC,QSA,L]</p> <p>Je risque de tourner en boucle infinie ! :o/</p> <p>Quelqu'un a-t-il une suggestion ?</p></blockquote></blockquote> > La réécriture des URL “à la volée” 2004-06-28T22:20:53Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment10765 2004-06-28T22:20:53Z <p>... Avec les accolades où il faut bien sûr ;o)</p> > La réécriture des URL “à la volée” 2004-06-28T22:16:52Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment10761 2004-06-28T22:16:52Z <p>Bonjour,</p> <p>Juste une petite interrogation :</p> <p>Si : RewriteCond<small class="fine"> </small>%<i>HTTP_BIDULE</i> blabla|blibli fonctionne.</p> <p>pourquoi : RewriteCond<small class="fine"> </small>%<i>HTTP_BIDULE</i> blabla&blibli ne fonctionne-t-il pas ?</p> <p>Ca me titille !</p> <p>En tout cas, merci pour cet excellent article, très pratique.</p> > La réécriture des URL “à la volée” 2004-06-12T12:23:28Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment10249 2004-06-12T12:23:28Z <p>Bonjour,</p> <p>Pour des raisons de maintenance, j'ai pris l'habitude d'intaller mes sites web en sous répertoires.<br class="autobr" /> j'ai donc physiquement : <strong><a href="http://www.monsite.fr/spip/" class="spip_url spip_out auto" rel="nofollow external">http://www.monsite.fr/spip/</a></strong><br class="manualbr" />je souhaiterais que ce sous-répertoire “spip” soit invisible aux internautes et qu'ils naviguent sous spip avec l'adresse suivante <strong><a href="http://www.monsite.fr/" class="spip_url spip_out auto" rel="nofollow external">http://www.monsite.fr/</a></strong></p> <p>je ne trouve pas la règle à utiliser, et je me perd entre les notions de RewriteBase et RewriteRule</p> <p>Pouvez-vous m'aider ???</p> > La réécriture des URL “à la volée” 2004-05-02T18:59:35Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment9031 2004-05-02T18:59:35Z <p>Bonjour et bravo pour ce site, son equipe et son travail.<br class="autobr" /> cette contrib et super...mais...j'arrive pas a la mettre en place...:(<br class="autobr" /> . Je voudrais ré-ecrire mes fichiers de squelette de cette facon<br class="autobr" /> agenda.php3?id_rubrique=xx a la facon agendaxx.html<br class="autobr" /> J'ai donc fait modif ds htaccess de la facon suivante <br class="autobr" /> Options +FollowSymlinks<br class="autobr" /> RewriteEngine on</p> <p>RewriteRule ^/agenda([0-9]+)\.html$ /agenda.php3?id_rubrique=$1 [QSA,L]<br /> RewriteRule ^/planning([0-9]+)\.html$ /planning.php3?id_rubrique=$1 [QSA,L]]<br /> RewriteRule ^/categorie([0-9]+)\.html$ /categorie.php3?id_rubrique=$1 [QSA,L]]<br /> RewriteRule ^/ou([0-9]+)\.html$ /ou.php3?id_mot=$1 [QSA,L]]<br /></p> <p># urls spip]<br /> RewriteRule ^/rubrique([0-9]+)\.html$ /rubrique.php3?id_rubrique=$1 [QSA,L]]<br /> RewriteRule ^/article([0-9]+)\.html$ /article.php3?id_article=$1 [QSA,L]]<br /> RewriteRule ^/breve([0-9]+)\.html$ /breve.php3?id_breve=$1 [QSA,L]]<br /> RewriteRule ^/secteur([0-9]+)\.html$ /secteur.php3?id_rubrique=$1 [QSA,L]]<br /> et....rien du tout alors que le test avec trouve.html fonctionne....]<br /> Si quelqu'un peu me donner un indice...</p> > La réécriture des URL “à la volée” 2004-04-19T13:54:37Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment8537 2004-04-19T13:54:37Z <p>Bonjour,</p> <p>J'ai un probleme de rewriting avec Easy PHP 1.7</p> <p>je veux des urls du genre -><br class="autobr" /> <a href="http://localhost/XXXX/XXXXX/index-navRubrique-18-SelectedRubrique-18.html" class="spip_url spip_out auto" rel="nofollow external">http://localhost/XXXX/XXXXX/index-navRubrique-18-SelectedRubrique-18.html</a></p> <p>qui rediriqent vers des de url de type ---></p> <p><a href="http://localhost/XXXX/XXXXX/index.phtml?navrubrique=18&Selectedrubrique=18" class="spip_url spip_out auto" rel="nofollow external">http://localhost/XXXX/XXXXX/index.phtml?navrubrique=18&Selectedrubrique=18</a></p> <p>Dans mon .htaccess j'utilise la ligne suivante :</p> <p>RewriteRule ^index-(.+)-([0-9]+)-(.+)-([0-9]+)\.html$ index.phtml?$1=$2&$3=$4 [L]</p> <p>(qui marche tres bien dans un environment unix)</p> <p>cette reecriture me renvoi sur la page index.phtml en oubliant les parametre.</p> <p>voici un extrait de mon rewrite log —></p> <p>strip per-dir prefix: j:/www/XXX/XXXX/index-navrubrique-19-selectedrubrique-19.html -> index-navrubrique-19-selectedrubrique-19.html<br class="autobr" /> 127.0.0.1 - - [19/Apr/2004:15:36:46 +0200] [localhost/sid#835860][rid#92edf0/initial] (3) [per-dir j:/www/XXX/XXXX/] applying pattern '^index-(.+)-([0-9]+)-(.+)-([0-9]+)\.html$' to uri 'index-navrubrique-19-selectedrubrique-19.html'<br class="autobr" /> 127.0.0.1 - - [19/Apr/2004:15:36:46 +0200] [localhost/sid#835860][rid#92edf0/initial] (2) [per-dir j:/www/XXX/XXXX/] rewrite index-navrubrique-19-selectedrubrique-19.html -> index.phtml?navrubrique=19&selectedrubrique=19<br class="autobr" /> 127.0.0.1 - - [19/Apr/2004:15:36:46 +0200] [localhost/sid#835860][rid#92edf0/initial] (3) split uri=index.phtml?navrubrique=19&selectedrubrique=19 -> uri=index.phtml, args=navrubrique=19&selectedrubrique=19<br class="autobr" /> 127.0.0.1 - - [19/Apr/2004:15:36:46 +0200] [localhost/sid#835860][rid#92edf0/initial] (3) [per-dir j:/www/XXX/XXXX/] add per-dir prefix: index.phtml -> j:/www/XXX/XXXX/index.phtml<br class="autobr" /> 127.0.0.1 - - [19/Apr/2004:15:36:46 +0200] [localhost/sid#835860][rid#92edf0/initial] (2) [per-dir j:/www/XXX/XXXX/] strip document_root prefix: j:/www/XXX/XXXX/index.phtml -> /XXX/XXXX/index.phtml<br class="autobr" /> 127.0.0.1 - - [19/Apr/2004:15:36:46 +0200] [localhost/sid#835860][rid#92edf0/initial] (1) [per-dir j:/www/XXX/XXXX/] internal redirect with /XXX/XXXX/index.phtml [INTERNAL REDIRECT]</p> <p>Merci de votre aide.</p> <p>Seb</p> > La réécriture des URL “à la volée” 2004-03-03T03:31:38Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment7122 2004-03-03T03:31:38Z <p>Bonjour,<br class="autobr" /> et merci grandement pour ce tutoriel très instructif. Enfin quelqu'un qui explique ces notions barbares! Chez mon hébergeur mutualisé, la redirection fonctionne, si je tape article=28.html, la page article.php?id_article=28 s'ouvre bien sous son adresse virtuelle.</p> <p>Cependant, les boucles de SPIP appelant les articles par #URL_ARTICLE court-circuitent cette merveilleuse réécriture à la volée et c'est bel et bien l'adresse réelle avec le ? qui s'affiche dans la barre d'adresse du navigateur. Horreur et putréfaction !!! Y a-t-il un moyen de corriger cela?</p> <p>Pour le script de désactivation des sessions, pour les moteurs de recherche, où est-ce qu'on le place au juste?</p> <p>Merci d'avance</p> > La réécriture des URL “à la volée” 2004-02-15T10:14:13Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment6430 2004-02-15T10:14:13Z <p>Article intéressant, mais je ne vois pas le rapport avec SPIP. mod_rewrite, c'est une fonctionnalité d'Apache... SPIP tout seul ne réécrit pas les URL, dire qu'il fournit en standard tout ce qu'il faut n'est pas la vérité.</p> > La réécriture des URL “à la volée” 2004-02-10T09:58:07Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment6192 2004-02-10T09:58:07Z <p>Bonjour,</p> <p>je viens chercher de l'aide ici, car je ne l'ai toruvé nul part.<br class="autobr" /> J'arrive à faire marcher le rewriting, mais uniquement dans la racine et sous-répertoire du serveur.<br class="autobr" /> Mais par contre, jai déclaré un alias, qui marche pour le reste, mais pour le rewriting, il ne veut rien savoir, il me donne l'erreur 400.</p> <p>Si quelqu'un sait comment faire, je suis preneur.</p> <p>Je pense que cela vient du fichier httpd.conf où il faut rajouter une directory, mais koi? je ne sais pas.</p> <p>Merci de votre aide.<br class="autobr" /> Philippe</p> > La réécriture des URL “à la volée” 2004-01-29T17:57:35Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5807 2004-01-29T17:57:35Z <p>Salut ;o)<br class="autobr" /> bon le site est bien cool, y a pas à dire,<br class="autobr" /> mais j'ai une rediredtion qui me pose problème.<br class="autobr" /> j'ai une page avec un champ login et un bouton :<br class="autobr" /> <a href="http://www.toto.com/site1/login.html" class="spip_url spip_out auto" rel="nofollow external">http://www.toto.com/site1/login.html</a><br class="autobr" /> cette page appel /site1/redirect/redirect.html<br class="autobr" /> vu que je fais une methode GET<br class="autobr" /> ça donne :<br class="autobr" /> <a href="http://www.toto.com/site1/redirect/redirect.html?login=user1" class="spip_url spip_out auto" rel="nofollow external">http://www.toto.com/site1/redirect/redirect.html?login=user1</a><br class="autobr" /> Je voudrais savoir comment faire une redirection<br class="autobr" /> vers :<br class="autobr" /> <a href="http://www.toto.com/support/site1/users/user1" class="spip_url spip_out auto" rel="nofollow external">http://www.toto.com/support/site1/users/user1</a><br class="autobr" /> j'ai essayé plusieurs chose dont :<br class="autobr" /> RewriteCond<small class="fine"> </small>%<i>HTTP_URI</i> ^(.*)redirect.html(.*)$<br class="autobr" /> RewriteRule ^(.*).com/(.*)/redirect/(.*)login=(.*)$ <a href="http://www.toto.com/support/$2/users/$4" class="spip_url spip_out auto" rel="nofollow external">http://www.toto.com/support/$2/users/$4</a> [L]<br class="autobr" /> et ça ne marche pas ;o/</p> <p>Ca c du bricolage, si vous avez plus simple, en gros<br class="autobr" /> ce que je veux faire c :<br class="autobr" /> J'ai une page /site1/login.html avec un simple champ texte 'login' et un bouton submit<br class="autobr" /> je veux recup le nom du site (site1) et ce que me balance<br class="autobr" /> ma page.</p> <p>je sais pas trop si s'st bien claire mais là j'en peux plus ;o/<br class="autobr" /> Merci par avance !</p> > Ne marche pas encore chez moi 2004-01-15T14:37:17Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5393 2004-01-15T14:37:17Z <p>err 404, ben il ne trouve pas la page.</p> <p>Regarde bien l url que tu as saisie, ss doute, il manque le dossier virtuel ou le nom du fichier en question.<br class="autobr" /> Si tj pas bon verif code de reecriture</p> > Ne marche pas encore chez moi 2004-01-11T22:23:24Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5308 2004-01-11T22:23:24Z <p>Je découvre que cela ne marche pas, car mon site est dans un répertoire “Alias”. Quelqu'un sait peut-être que dois-je faire pour utiliser .htaccess là-dedans ?</p> <p>Paolo</p> > Ne marche pas encore chez moi 2004-01-11T15:10:07Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5304 2004-01-11T15:10:07Z <p>j'ai trouvé !<br class="autobr" /> en fait avec easyphp 1.7 il suffit d'aller activer le chargement et<br class="autobr" /> l'utilisation du module rewrite dans le fichier httpd.conf (clicker-droit sur<br class="autobr" /> l'icône easyphp, configuration, apache) puis chercher les lignes :</p> <p> <i>LoadModule rewrite_module modules/mod_rewrite.so</i></p> <p>et</p> <p> <i>AddModule mod_rewrite.c</i></p> <p>qu'il suffit de décommenter.</p> <p>redémarrer ensuite easyphp<br class="autobr" /> et voilà !</p> <p>J'ai aussi trouvé pour redhat si jamais ça vous arrive : en fait ces deux lignes sont par défaut activées (non-commentées) mais il y a un autre endroit où il faut activer un truc : il faut trouver la ligne (où on parle d'htaccess<br class="autobr" /> dans les commentaires) suivie de :</p> <p> <i>AllowOverride None</i></p> <p>qu'il faut changer en</p> <p> <i>AllowOverride All</i></p> <p>voilà... ça marche.</p> <p>Maintenant, n'étant pas un expert je ne peux garantir ce que cela peut impliquer en terme de sécurité (<i>AllowOverride All</i>), ça marche certes ! mais peut-être l'avis d'un spécialiste serait bienvenu pour confirmer que c'est bien la marche à suivre, et qu'il n'y a pas quelques petits détails à peaufiner dans le fichier .htaccess lui-même ?...</p> > Ne marche pas encore chez moi 2004-01-08T18:08:46Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5266 2004-01-08T18:08:46Z <p>Magnifique article !<br class="autobr" /> Alors je suis encore plus déçu que cela ne marche pas chez moi - toujours 'Error 404' au premier test.</p> <p>J'utilise EasyPHP 1.7 avec Windows xp. J'ai bien vérifié (et corrigé) les 2 lignes mentionnées dans httpd.conf</p> <p>Que puis-je faire encore ?</p> <p>merci, Paolo</p> > La réécriture des URL “à la volée” 2004-01-07T14:15:24Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5246 2004-01-07T14:15:24Z <p>tres bon article<br class="autobr" /> merci pour ce travail</p> > Erreur 400 :s 2004-01-07T13:13:08Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5238 2004-01-07T13:13:08Z <p>mmmmmmmm, ben j'étais pas bien réveillé ! (dur dur le début de l'année) en fait pour easyphp il suffisait d'aller activer le mod_rewrite dans httpd.conf</p> <p>désolé !</p> <p>... mais j'ai toujours mon problème sur la Redhat. Je continue les investigations...</p> > Erreur 400 :s 2004-01-03T21:09:30Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5177 2004-01-03T21:09:30Z <p>PS : Dan, j'ai bien vu le <i>“et malheureusement il n'y a pas grand-chose à faire...”</i> mais c'est bien ce point précis que je souhaite élucider.</p> <p>Comment est-il possible que ça marche chez l'un et pas chez l'autre ? (je peux facilement comprendre que sur linux telle ou telle distro contient un paramétrage particulier qui empêche le fonctionnement normal, mais sous windows avec le même easyphp... ça devient plus étrange !)</p> > Erreur 400 :s 2004-01-03T21:02:55Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment5175 2004-01-03T21:02:55Z <p>Salut à tous, et merci à Dan pour ces explications de haut niveau et d'excellente qualité !</p> <p>... sauf que je comprends pas pourquoi ça ne marche pas chez moi :(</p> <p>(j'ai une erreur plus classique : la fameuse 404)</p> <p>je bosse sur un redhat 9 (sur lequel j'ai downgradé Apache en 1.3.27 et PHP en 4.3.2 - pour pouvoir intégrer pdflib - jusque là ça marche super bien)<br class="autobr" /> mais quand je fait le test du nexistepas.html/trouve.html il me fait encore une erreur 404 (j'ai bien vérifié que httpd.conf load le module rewrite, tout va bien, on voit bien apparaître mod_rewrite aussi dans phpinfo, je ne vois pas d'erreur particulière dans les logs, sauf apache qui ne trouve pas le fichier bien entendu)</p> <p>j'ai essayé aussi sur mon poste (win2000 pro SP4 avec tous les patchs etc. avec easyphp1.7, tout neuf, rien n'a été modifié après l'installation, je fais tourner easyphp en services) et là encore erreur 404 !...</p> <p>Kess kiss pass ?...<br class="autobr" /> (merci d'avance)</p> > Erreur 400 :s 2003-12-14T09:02:26Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4900 2003-12-14T09:02:26Z <p>Salut,</p> <p>Tu ne donnes pas beaucoup d'infos, donc je sors la boule de crystal... ;-)<br class="manualbr" />Windows + easyphp 1.6 ?</p> <p>Si c'est le cas, c'est normal car la version Apache installée (1.3.24) a un bug de réécriture identifié sous windows. Ce bug est corrigé avec la 1.3.27, il te suffit donc d'installer EasyPhp 1.7 et tout rentrera dans l'ordre.</p> <p>Dan</p> Erreur 400 :s 2003-12-13T22:29:30Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4899 2003-12-13T22:29:30Z <p>Moi j,ai un erreur 400 a la place :s</p> > La réécriture des URL “à la volée” 2003-12-11T21:18:11Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4876 2003-12-11T21:18:11Z <p>Merci Beaucoup !<br class="autobr" /> Bonne continuation :)</p> > La réécriture des URL “à la volée” 2003-12-11T14:21:35Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4866 2003-12-11T14:21:35Z <p>Bonjour,</p> <p>Le problème avec les caractères accentués est que l'encodage peut varier selon la plateforme que tu utilises.<br class="manualbr" />Les normes du W3C préconisent l'encodage de ces caractères exotiques, et il est souvent bien plus sage de s'en tenir éloigné si on veut éviter les soucis d'incompatibilité. Une URL avec un caratère “é” a toutes les chances de voir celui-ci converti en %E9 de toutes manières, au même titre que l'espace qui se retrouve converti en %20 ...</p> <p>La meilleure solution serait encore de modifier les sources de ton annuaire pour ne plus avoir des ?PID=Moteur-spécialisé mais bien ?PID=Moteur-spécialise</p> <p>Cordialement</p> > La réécriture des URL “à la volée” 2003-12-11T13:43:48Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4863 2003-12-11T13:43:48Z <p>Bonjour,</p> <p>Je suis nouveau sur le site, et je profite de l'occasion pour féliciter le Webmaster :)</p> <p>Je suis aussi nouveau dans le Rewriting, j'ai une question si c'est possible ?</p> <p>comment remplaçer les e(accent) é dans le htaccess ? CAD :<br class="autobr" /> J'ai l'origine : “annuaire/index.php?PID=Moteur-spécialisé” mais je n'arrive pas à remplaçer le “é”</p> <p>annuaire/index-Moteur-spécialisé.html</p> <p>Avec “annuaire/index-Moteur-specialise.html” ça marche</p> <p>Merci d'avance et bonne continuation :)</p> > La réécriture des URL “à la volée” 2003-12-03T10:08:32Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4705 2003-12-03T10:08:32Z <p>et ne pas oublier le modifier spip et le fichier inc-urls.php3</p> <p>voir <a href="http://www.spip.net/fr_article765.html?var_recherche=reecriture" class="spip_out" rel='nofollow external'>article spip.net</a></p> > La réécriture des URL sur EasyPHP 2003-11-09T16:24:54Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4281 2003-11-09T16:24:54Z <p>Salut Pascal,</p> <p>Merci pour tes compliments sur l'atricle, cela fait toujours plaisir. ;-)</p> <p>Tu as probablement une version 1.6 d'EasyPhp.<br class="manualbr" />La version Apache 1.3.24 installée par défaut avec celle-ci est connue pour ses bugs (documentés) sous windows (principalement dans le module rewrite.c)</p> <p>Le mieux serait d'installer la dernière version EasyPhp qui comprend une version plus récente d'Apache (1.3.27 si je ne m'abuse) ne présentant plus ces bugs.</p> <p>L'erreur 404 non redirigée est normale dans ce cas, comme la redirection (interne à Apache) ne représente plus l'URL “à l'examen” ... donc la directive ErrorDocument ne s'applique pas.<br class="autobr" /> Le ErrorDocument devrait jouer si tu entres une mauvaise URL dans la barre d'adresse. Si ce n'est pas le cas, c'est que la directive AllowOverride n'a pas les bons arguments dans le fichier httpd.conf.</p> <p>Cordialement,</p> <p>Dan</p> > La réécriture des URL sur EasyPHP 2003-11-09T12:05:25Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4277 2003-11-09T12:05:25Z <p>Article très complet. Tout fonctionne sur notre site, mais pas depuis easyphp (quand je suis dans le train ;o).<br /> Si je mets dans le htaccess :</p> <p>DirectoryIndex sommaire.php index.html index.php<br /> Options +FollowSymlinks<br /> ErrorDocument 404 /404.php<br /> RewriteEngine on<br /> RewriteRule ^agence\.html$ agence_atypik.php [QSA,L]</p> <p>j'ai une erreur 404, sans rediriger sur la 404.php</p> <p>Les modules nécessaires ne sont pas en commentaire dans le fichier de config d'apache, et pas activés dans le phpinfo !</p> <p>Une info à ce sujet ?</p> > La réécriture des URL “à la volée” 2003-11-04T12:44:28Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4219 2003-11-04T12:44:28Z <p>La réécriture d'URLs ne va pas créer pour toi des pages HTML... parce qu'elle fonctionne dans l'autre sens.</p> <p>Elle permet de “présenter au monde” des URLs fictives qui ressemblent à des pages HTML, et de s'occuper de la conversion de ces URLs en appels de pages dynamiques.</p> <p>Si tu veux que les robots puissent indexer tes pages sans identifiants de session, il faut que tu te charges toi-même de la détection de ces robots et le cas échéant ne pas lancer de session php. Il faut pour cela que ton site puisse être visité en profondeur sans que l'absence de sessions ne soit un obstacle. C'est donc une problématique de conception de site, et non de réécriture d'URL.</p> <p>Tu peux utiliser ce code pour déteminer s'il faut démarrer une session ou non. A toi à compléter la liste des robots...</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>/* Ouverture d'une session, utilise une variable tableau SESSION pour stocker les variables à tracer */ // Spider/Bot pour référencement $spiders = array("Googlebot", "crawler", "Slurp", "Fast","ia_archiver","Scooter","Robot","VoilaBot","W3C","ZyBorg","Deepindex","xecho"); $from_spider = false; foreach($spiders as $Val) { if (eregi($Val, $_SERVER["HTTP_USER_AGENT"])) { $from_spider = true; break; } } // Session ini_set("session.use_trans_sid", "0"); if(!$from_spider) { session_start(); session_register("SESSION"); }</code></pre></div> > La réécriture des URL “à la volée” 2003-11-04T10:14:40Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4217 2003-11-04T10:14:40Z <p>Merci encore.</p> <p>Ca marche mais comme ca chez moi :</p> <p>RewriteRule ^/produit-([A-Z]<i>2</i>)-([A-Z0-9]<i>6</i>)\.html$ <a href="http://192.168.231.156/fiche_produit.php?langue=$1&id=$2" class="spip_url spip_out auto" rel="nofollow external">http://192.168.231.156/fiche_produit.php?langue=$1&id=$2</a> [L]</p> <p>toutefois</p> <p>ce n'est pas EXACTEMENT le comprotement que je recherche.</p> <p>:)</p> <p>En effet je voudrais CREER a la volee la copie HTML de mes pages PHP.</p> <p>Car google ne reference pas nos page produits ( a cause de la SESSION PHP, parait il).</p> <p>Je cherche donc une solution pour que si QQ1 (google) passe sur mon site il puisse enfin indexe mes pages.</p> <p>Voili Voilo</p> > La réécriture des URL “à la volée” 2003-11-04T09:20:16Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4214 2003-11-04T09:20:16Z <p>Salut,</p> <p>La rapidité vient de l'alerte email lorsqu'un message est ajouté à la suite de l'article. Merci à Spip pour cela. ;-)</p> <p>C'est donc ta règle de réécriture qui est mauvaise... <br class="manualbr" />En effet, ton deuxième paramètre comprend des chiffres/lettres (lettres en majuscule)</p> <p>Pour convertir <a href="http://192.168.231.156/produits/produit-FR-NIA001.html" class="spip_url spip_out auto" rel="nofollow external">http://192.168.231.156/produits/produit-FR-NIA001.html</a> , il suffit d'analyser ce que tu as en entrée et ce que tu veux en sortie...</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>RewriteRule produit-([A-Z]{2})-([A-Z0-9]{6})\.html fiche_produit.php?langue=$1&id=$2 [L]</code></pre></div> <p>Dans ce cas,tu isoles les parties variables en 2 groupes distincts: <br />- 2 lettres majuscules pour la langue ($langue) <br />- 6 lettres majuscules et digits pour la référence ($id)</p> <p>Ces 2 groupes sont donc repris en deuxième partie d'expression sous les variables $1 et $2</p> <p>Comme tes deux exemples ne sont pas consistants, vu que dans le deuxième tu utilises un répertoire /produits/ , garde à l'esprit qu'il te faudra peut-être utiliser la balise <code><base href=.....></code> pour que tes liens/images soient résolus. ;-)</p> <p>Cordialement</p> <p>PS: il y a d'autres articles sur la réécriture et le PHP sur le Hub, dans la partie “publications” rédigée sous Spip</p> <p>PS2: si tu as majuscules et minuscules, il faut modifier la règle:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>RewriteRule produit-([A-Za-z]{2})-([A-Za-z0-9]{6})\.html fiche_produit.php?langue=$1&id=$2 [L]</code></pre></div> > La réécriture des URL “à la volée” 2003-11-04T08:49:32Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4210 2003-11-04T08:49:32Z <p>Quelle rapidité</p> <p>Ok</p> <p>Mes urls sont de la formes :</p> <p><a href="http://192.168.231.156/fiche_produit.php?langue=FR&id=NIA001" class="spip_url spip_out auto" rel="nofollow external">http://192.168.231.156/fiche_produit.php?langue=FR&id=NIA001</a></p> <p>Avec FR ou EN ou IT ou ES pour la langue et c'est tout.</p> <p>Et NIA001 ou NIA002 ou LAV001 pour l'id</p> <p>Et je voudrais avoir</p> <p><a href="http://192.168.231.156/produits/produit-FR-NIA001.html" class="spip_url spip_out auto" rel="nofollow external">http://192.168.231.156/produits/produit-FR-NIA001.html</a></p> <p>voili voilo</p> > La réécriture des URL “à la volée” 2003-11-04T08:24:17Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4209 2003-11-04T08:24:17Z <p>Bonjour,</p> <p>Comme je vois certains chiffres en italique, j'imagine que tu as mis les parenthèses qui vont bien:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>RewriteRule ^fiche_produit-([a-z]{2})-([a-z]{3})-([0-9]{3})\.html$ fiche_produit.php ?langue=$1&id=$2 [NC,L]</code></pre></div> <p>Tu as donc 2 lettres, suivies de 3 lettres, suivies de 3 chiffres.<br class="manualbr" />Par contre, dans la deuxième partie de l'expression, tu ne traites que 2 variables... il t'en manque donc une.<br class="manualbr" />Si tu donnais une URL complète telle que tu la voudrais, et sa correspondance dynamique, ce serait plus simple.</p> > La réécriture des URL “à la volée” 2003-11-04T08:08:15Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment4208 2003-11-04T08:08:15Z <p>Bonjour a vous j'utilise APACHE 1.3.2 sur WIn 2000 server.</p> <p>Avec un PHP 4.2.2 et postgresQL</p> <p>Ouf</p> <p>Voila mon PB,</p> <p>RewriteRule ^/frm_boutique.asp$ <a href="http://192.168.231.156/commande_express.php" class="spip_url spip_out auto" rel="nofollow external">http://192.168.231.156/commande_express.php</a> [L]</p> <p>Cette regla marche bien</p> <p>toute personne essayant d'aller sur ....asp et rediriger vers ....php</p> <p>PAR CONTRE</p> <p>RewriteRule ^fiche_produit-([a-z]<i>2</i>)-([a-z]<i>3</i>)-([0-9]<i>3</i>)\.html$ fiche_produit.php?langue=$1&id=$2 [NC,L]</p> <p>Celle la ne marche pas</p> <p>PK ??</p> <p>Le but est de creer une page html depuis mes pages dyn PHP, on ne passe que 2 parametres 'langue=XX' et id='XXX000'</p> <p>Merci</p> > La réécriture des URL “à la volée” 2003-10-10T22:07:51Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3879 2003-10-10T22:07:51Z <p>Dan est pour moi LE webmaster francais qui partage son savoir ...<br class="autobr" /> il en connait tellement et le fait si bien...<br class="autobr" /> Alors que d'autre sont la et retienne leur info....<br class="autobr" /> lui explique tout son savoir a merveille ..</p> <p>MERCI DAN !!!!!!</p> > La réécriture des URL “à la volée” 2003-09-27T11:24:48Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3614 2003-09-27T11:24:48Z <p>ok, merci...</p> > La réécriture des URL “à la volée” 2003-09-24T05:24:47Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3563 2003-09-24T05:24:47Z <p>Il n'y a pas de problème avec les sessions, dans la mesure où le répertoire servant à les stocker existe bien... <br class="manualbr" />Recherche dans php.ini la partie ressemblant à;</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>; Handler used to store/retrieve data. session.save_handler = files ; Argument passed to save_handler. In the case of files, this is the path ; where data files are stored. Note: Windows users have to change this ; variable in order to use PHP's session functions. session.save_path = C:/phpdev\php\temp;</code></pre></div> <p>En adaptant le répertoire à ton cas...</p> <p>Dan</p> > La réécriture des URL “à la volée” 2003-09-23T19:55:31Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3551 2003-09-23T19:55:31Z <p>Oui j'avais relancé le server plusieurs fois. J'avais lu justement les problèmes avec les vieilles versions d'apache. J'ai donc : php 4.3.3, mysql 1.3.28.<br class="autobr" /> Malheureusement tjrs rien n'y fait. Dans le phpinfo(), je n'ai pas la ligne du additional module, et l'exemple ne marche tjrs pas.</p> <p>Par contre j'ai lu qu'il y avait des soucis avec les sessions. Si c'est le cas, je dois me passer de l'url rewriting car j'ai absolument besoin des sessions</p> <p>Merci de votre aide</p> > La réécriture des URL “à la volée” 2003-09-21T17:03:56Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3504 2003-09-21T17:03:56Z <p>Salut,</p> <p>Tu as le choix, comme les directives RewriteEngine et RewriteCond peuvent être utilisées dans les 4 contextes suivants: server config, virtual host, directory, .htaccess</p> <p>Tu peux les mettre hors de tes déclarations de virtual hosts si elles sont globales... sinon au sein même du vitual host.<br class="manualbr" />Si tu utilises RewriteBase, il doit être au sein du Directory... donc tu peux aussi tout mettre là.</p> <p>Dan</p> > La réécriture des URL “à la volée” 2003-09-21T16:26:56Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3503 2003-09-21T16:26:56Z <p>Réecrire dans le htaccess okay, mais ou dois-je mettre mes commandes si je ne souhaite pas utiliser le htaccess (dans le virtual host, surement, mais ou ?)</p> <p>Merci d'avance.<br class="autobr" /> alexandre</p> > La réécriture des URL “à la volée” 2003-09-20T19:49:05Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3497 2003-09-20T19:49:05Z <p>Tu as bien redémarré Apache tout de même ? ;-)</p> > La réécriture des URL “à la volée” 2003-09-20T19:40:24Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3496 2003-09-20T19:40:24Z <p>L'explication est donnée dans l'article... avec un RewriteCond.</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://www.domaine.tld/.*$ [NC] ReWriteRule .*\.(gif|png|jpe?g)$ - [F]</code></pre></div> <p>Le seul problème est qu'on se base sur le HTTP_REFERER qui est parfois masqué pour les utilisateurs de proxies... donc il faut permettre aussi un HTTP_REFERER null.</p> <p>Cela évite le “hot linking” au départ d'autres sites, mais pas l'aspiration sauvage...</p> <p>Dan</p> > La réécriture des URL “à la volée” 2003-09-20T19:34:02Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3495 2003-09-20T19:34:02Z <p>Normalement, des deux lignes suffisent pour faire fonctionner le mod_rewrite...</p> <p>Mais easyphp 1.6 installe Apache 1.3.24 qui a un bug au niveau du morule rewrite.c sous windows...</p> <p>Tu devrais installer le version 1.7RC1 qui vient de sortir, cela te fera apache 1.3.8 et php 4.3.2 (ou 4.3.3 je ne sais plus)</p> <p>Si tu coinces encore, viens sur le Hub, on essayera de faire fonctionner ça :-)</p> > La réécriture des URL “à la volée” 2003-09-20T00:27:39Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3492 2003-09-20T00:27:39Z <p>C'est vrai qu'il est interessant cet article, mais alors je dois vraiment être con, car j'essaie de le mettre en action sur easyphp, et ca marche po</p> <p>J'ai enlevé le commentaires aux 2 lignes indiqués en début de texte et je regarde dans mon phpinfo mais je ne vois pas de mod_rewrite</p> <p>Y a til une action spéciale à faire ?</p> > La réécriture des URL “à la volée” 2003-09-11T22:19:50Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3336 2003-09-11T22:19:50Z <p>Bonjour,<br class="autobr" /> merci pour vos explications mais je voudrais un renseignement plus ciblé.</p> <p>En fait je suis webmaster d'un site et par l'intermediaire d'un visiteur, je me suis rendu compte que grace au logiciel “intellitamper”, on pouvais scanner mon serveur et recuperer toutes les images dans le repertoire privé.<br class="autobr" /> J'ai donc tenté de mettre un fichier .htaccess mais qui a eu pour seule consequence d'empecher l'affichage des images par certains utilisateurs qui m'envoyaient des mails me disant “on n'a plus acces aux images ;-(” (point positif, intellitamper ne les voyais plus non plus mais bon....).<br class="autobr" /> J'aimerais donc savoir comment faire pour que cette pratique ne soit plus possible tout en permettant l'affichage des images par tout le monde visitant mon site?<br class="autobr" /> Merci d'avance pour votre aide<br class="autobr" /> Alex</p> > La réécriture des URL “à la volée” 2003-09-10T11:07:19Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3316 2003-09-10T11:07:19Z <p>:-o <br class="autobr" /> Un message anonyme ? LOL<br class="autobr" /> Pour ta gouverne, monsieur le corbeau, saches que l'article publié sur Webrankinfo est signé par moi-même et que j'en suis le seul auteur. <br class="autobr" /> C'est Webrankinfo qui publie cet article avec mon autorisation et non l'inverse !</p> <p>Je l'ai retiré du site des publications de l'immobilier pour le mettre sur mon nouveau site où il sera mieux à sa place: Webmaster Hub (cela semble te déranger... je me trompe ? :-) )</p> > La réécriture des URL “à la volée” 2003-09-10T10:50:07Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3314 2003-09-10T10:50:07Z <p>Merci à Webrankinfo.com pour l'article !</p> > La réécriture des URL “à la volée” 2003-09-05T16:09:59Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3239 2003-09-05T16:09:59Z <p>Salut Steph,</p> <p>Heureux que cela te plaise. :-)<br class="autobr" /> Tu trouveras d'autres articles techniques sur Webmaster Hub, qui est un nouveau site orienté Webmasters qu'on a lancé mi août.</p> <p>Il a une partie publication sous Spip qui commence à se remplir.</p> <p>(faut bien se faire un peu de pub :-D )</p> > La réécriture des URL “à la volée” 2003-09-05T15:54:28Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3238 2003-09-05T15:54:28Z <p>Super!</p> <p>Moi qui cherchais un moyen simple de cacher tous les paramétres situés dans l'url et bien voilà, j'ai trouvé et grâce à vous !</p> <p>J'utilise Easyphp et je confirme qu' il faut installer une version Apache plus récente.</p> <p>Merci encore.</p> > La réécriture des URL “à la volée” 2003-08-28T06:50:23Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3076 2003-08-28T06:50:23Z <p>Bonjour,</p> <p>EasyPHP installe une version 1.3.24 d'Apache, dans laquelle le bug de réécriture Apache sous Windows n'est pas corrigé.(il faut au moins une version 1.3.26)</p> <p>Si tu mets en place le rewritelog, tu verras qu'au millieu de la chaîne réécrite tu trouveras “c:\...” qui n'a rien à y faire. :-(<br class="autobr" /> Tu peux arriver à circonscrire cela en utilisant la directive rewritebase ou en installant une versin apache 1.3.27 ou 1.3.28 par dessus l'ancienne.</p> <p>Dan</p> > La réécriture des URL “à la volée” 2003-08-27T20:56:16Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3060 2003-08-27T20:56:16Z <p>Article intéressant mais j'ai pas réussi à faire fonctionner avec easyphp. Il ne trouve jamais la page : ex. article102.hml -> une belle erreur 404</p> > La réécriture des URL “à la volée” 2003-08-27T16:05:37Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3055 2003-08-27T16:05:37Z <p>Merci pour votre commentaire, cela fait toujours plaisir ;-)</p> <p>La ligne Options +FollowSymlinks dépend en fait de l'hébergeur, car certains le configurent par défaut, mais pas tous.</p> <p>D'autres hébergeurs ne mettent pas “options” dans la directive AllowOverride, ce qui empêche cette ligne de s'exécuter et donne une erreur.</p> <p>Cordialement,</p> <p>Dan</p> > La réécriture des URL “à la volée” 2003-08-27T15:14:58Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment3054 2003-08-27T15:14:58Z <p>tres bon tutorial</p> <p>juste un precision sur le test</p> <p>sur un serveur mutualise ( la plupart des cas), ne mettre que:</p> <p>RewriteEngine on</p> <p>RewriteRule ^nexistepas.html$ trouve.html [L]</p> <p>et non:</p> <p>Options +FollowSymlinks</p> <p>RewriteEngine on</p> <p>RewriteRule ^nexistepas.html$ trouve.html [L]</p> > La réécriture des URL “à la volée” 2003-07-05T10:28:55Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment2549 2003-07-05T10:28:55Z <p>Pour ceux que cela intéresse, j'ai publié sur mon site une suite traitant de la récursivité.</p> <p>Attention, chaud devant ! ;-)</p> > La réécriture des URL “à la volée” 2003-06-15T21:49:19Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment2201 2003-06-15T21:49:19Z <p>Magique !!! :-D :-D :-D<br class="autobr" /> Merci beaucoup pour cet article.</p> > La réécriture des URL “à la volée” 2003-06-12T07:37:09Z https://files.spip.net/La-reecriture-des-URL-a-la-volee#comment2130 2003-06-12T07:37:09Z <p>Merci pour cet article vraiment très didactique, le premier sur le sujet, en français, ou je comprends tout ! :-)</p>