<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.grumpf.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Grumpf - Tag - mod_rewrite</title>
  <link>http://www.grumpf.net/</link>
  <description>Aux frontières d'URL</description>
  <language>fr</language>
  <pubDate>Mon, 18 Aug 2008 20:38:22 +0200</pubDate>
  <copyright>&amp;copy; Grumpf, Pierre Grasswill</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>un instant de réflection</title>
    <link>http://www.grumpf.net/post/2008/04/30/un-instant-de-reflection</link>
    <guid isPermaLink="false">urn:md5:1b6f8fe6b15aeeba370cfbd91e17ad85</guid>
    <pubDate>Wed, 30 Apr 2008 22:14:00 +0200</pubDate>
    <dc:creator>Grumpf</dc:creator>
        <category>geekage</category>
        <category>dotclear2</category><category>mod_rewrite</category>    
    <description>    &lt;p&gt;ca faisait longtemps que j'avais laissé de coté le pb de 'Rechercher' qui ne fonctionnait pas sur mon dotclear, j'ai pris un instant pour réfléchir sur le problème...&lt;br /&gt;
suffisait de laisser passer la bonne regle de rewrite lors d'une query contenant &quot;q=&quot;&lt;br /&gt;&lt;/p&gt;

&lt;pre&gt; RewriteCond %{QUERY_STRING} !.*q=.*&lt;/pre&gt;




&lt;p&gt;ce qui me donne le fichier '.htaccess' suivant:&lt;/p&gt;


&lt;pre&gt;
RewriteEngine On
# /index.php?string &amp;amp; /?string -&amp;gt; /string (HTTP 301)
# sauf pour le query sting &amp;quot;q=&amp;quot; qui sert lors de l'utilisation de recherche
RewriteCond %{REQUEST_URI} ^(/|/index.php)$
RewriteCond %{QUERY_STRING} (.+)
RewriteCond %{QUERY_STRING} !.*q=.*
RewriteRule (.*)$ http://%{SERVER_NAME}/%1? [R=301,L]
# redirect /index.php -&amp;gt; / (HTTP 301)
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} (^.*)
RewriteRule (.*)$ http://%{SERVER_NAME}/ [R=301,L]
# redirections pour install dotclear2 a la racine
RewriteCond %{REQUEST_URI} ^/((post|category|tag|feed|archive|page).*|sitemap.xml)
RewriteRule (.*)$ index.php/$1 [L]

RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule feed/rss2$ http://feeds.feedburner.com/Grumpf [R=301,L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule feed/rss2/comments$ http://feeds.feedburner.com/Grumpf-Commentaires [R=301,L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule feed/atom$ http://feeds.feedburner.com/Grumpf [R=301,L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule feed/atom/comments$ http://feeds.feedburner.com/Grumpf-Commentaires [R=301,L]

&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.grumpf.net/post/2008/04/30/un-instant-de-reflection#comment-form</comments>
      <wfw:comment>http://www.grumpf.net/post/2008/04/30/un-instant-de-reflection#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grumpf.net/feed/rss2/comments/50</wfw:commentRss>
      </item>
    
  <item>
    <title>mod_rewrite ? pour changer</title>
    <link>http://www.grumpf.net/post/2007/09/18/mod_rewrite-pour-changer</link>
    <guid isPermaLink="false">urn:md5:675f1bed47efad1ca67ff56bfb6f56a4</guid>
    <pubDate>Tue, 18 Sep 2007 23:08:00 +0200</pubDate>
    <dc:creator>Grumpf</dc:creator>
        <category>geekage</category>
        <category>apache</category><category>linux</category><category>mod_rewrite</category>    
    <description>&lt;p&gt;pour changer parcequ'en ce moment j'ai le rewrite &lt;img src=&quot;/themes/default/smilies/wink.png&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;
dans ce billet, vous verrez du sang, du porn, des personnes nues, des femmes blondes à forte poitrines&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;je m'égare ... &lt;em&gt;(ou je met des mots pour monter le traffic? ;))&lt;/em&gt; vite&amp;nbsp;:&lt;/p&gt;    &lt;p&gt;En réponse à &lt;a href=&quot;http://www.webmaster-hub.com/index.php?showtopic=36865&quot;&gt;ma question sur webmaster-hub&lt;/a&gt; Jan me dis que j'ai un pb entre mon / et mon index.php googlebot pert les pédales.&lt;br /&gt;
je suis entrain d'essayer de recup mon cache de / sur le bon &lt;br /&gt;
j'avais bien lu qu'il fallait que les liens Internes pour sur le / mais j'avais oublié une ligne de la réponse&lt;br /&gt;
&lt;em&gt;- Implémente dans ta page index une redirection 301 de &quot;index.php&quot; vers &quot;/&quot; (ou le contraire)&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;donc j'ai encore touché a mon .htaccess&lt;/p&gt;
&lt;pre&gt;        RewriteCond %{REQUEST_URI} ^/index.php$
        RewriteCond %{QUERY_STRING} (^.*)
        RewriteRule (.*)$ http://%{SERVER_NAME}/ [R=301,L]&lt;/pre&gt;


&lt;p&gt;j'ai donc du monde la dedans maintenant
le dernier htaccess en datte:&lt;/p&gt;

&lt;pre&gt;        RewriteEngine On

        RewriteCond %{REQUEST_URI} ^(/|/index.php)$
        RewriteCond %{QUERY_STRING} (.+)
        RewriteRule (.*)$ http://%{SERVER_NAME}/%1? [R=301,L]

        RewriteCond %{REQUEST_URI} ^/index.php$
        RewriteCond %{QUERY_STRING} (^.*)
        RewriteRule (.*)$ http://%{SERVER_NAME}/ [R=301,L]

        RewriteCond %{REQUEST_URI} ^/((post|category|tag|feed|archive|page).*|sitemap.xml)
        RewriteRule (.*)$ index.php/$1 [L]&lt;/pre&gt;

&lt;p&gt;les rules dans l'ordre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si l'on demande /?qqchose ou /index.php?qqchose redirect sur /qqchose&lt;/li&gt;
&lt;li&gt;si l'on demande /index.php (sans query_string) redirect sur /&lt;/li&gt;
&lt;li&gt;si on demande /truc/bidule redirect internet (non visible par le naviguateur) vers /index.php/truc/bidule&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;dans la famille mod_rewrite celui mis en place sur le default vhost de nouvia.com&lt;/p&gt;
&lt;pre&gt;        RewriteCond %{SERVER_NAME} ^(nouvia\.com|kes\.fr|tresorsecret\.fr)$
        RewriteCond %{REQUEST_URI} ^/$
        RewriteRule (.*)$ http://www.%{SERVER_NAME} [R=301,L]&lt;/pre&gt;

&lt;p&gt;si on demande un des hosts dans la liste &lt;a href=&quot;http://www.grumpf.net/post/2007/09/18/nouvia.com&quot;&gt;nouvia.com&lt;/a&gt;, &lt;a href=&quot;http://www.grumpf.net/post/2007/09/18/www.kes.fr&quot;&gt;kes.fr&lt;/a&gt;, &lt;a href=&quot;http://www.grumpf.net/post/2007/09/18/www.tresorsecret.fr&quot;&gt;tresorsecret.fr&lt;/a&gt; on est redirigé vers www.lehostdemandé&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;celui de frogs-online.com&lt;/p&gt;
&lt;pre&gt;        RewriteEngine On
        RewriteCond %{SERVER_NAME} ^www\.frogs-online\.com$
        RewriteCond %{REQUEST_URI} ^/$
        RewriteRule (.*)$ http://forum.frogs-online.com/ [R=302,L]&lt;/pre&gt;

&lt;p&gt;si on demande le / de &lt;a href=&quot;http://www.grumpf.net/post/2007/09/18/www.frogs-online.com&quot;&gt;www.frogs-online.com&lt;/a&gt; on est redirigé vers &lt;a href=&quot;http://www.grumpf.net/post/2007/09/18/forum.frogs-online.com&quot;&gt;forum.frogs-online.com&lt;/a&gt; en 302 car c'est temporaire , mais c'est pas grave c'est du mod_rewrite quand meme&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grumpf.net/post/2007/09/18/mod_rewrite-pour-changer#comment-form</comments>
      <wfw:comment>http://www.grumpf.net/post/2007/09/18/mod_rewrite-pour-changer#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grumpf.net/feed/rss2/comments/22</wfw:commentRss>
      </item>
    
  <item>
    <title>mod_rewrite encore et toujours</title>
    <link>http://www.grumpf.net/post/2007/09/18/mod_rewrite-encore-et-toujours</link>
    <guid isPermaLink="false">urn:md5:f70e110a8354b2e71e40d08ec39a9c66</guid>
    <pubDate>Tue, 18 Sep 2007 01:28:00 +0200</pubDate>
    <dc:creator>Grumpf</dc:creator>
        <category>geekage</category>
        <category>apache</category><category>dotclear</category><category>linux</category><category>mod_rewrite</category>    
    <description>&lt;p&gt;je cherche à ameliorer mon pagerank, pour cela il ne faut pas (ou peu) de contenu dupliqué...&lt;br /&gt;
avec mes nombres modif d'url du blog google continue a crawl des &quot;vieux&quot; truc &lt;br /&gt;&lt;/p&gt;

&lt;pre&gt; /index.php?post/...
 /?post/...
 /post/...&lt;/pre&gt;

&lt;p&gt;bien sur c'est 3 fois le meme contenu, encore une fois mod_rewrite va nous aider à malmener le cache de google à grand coup de réponses HTTP 301/302 (object as move)&lt;/p&gt;    &lt;p&gt;on va faire court il est tard, ca ma pris la soirée à résoudre , voila la partie du .htaccess&lt;/p&gt;
&lt;pre&gt;
  RewriteCond %{REQUEST_URI} ^/$
  RewriteCond %{QUERY_STRING} (.+)
  RewriteRule (.*)$ http://%{SERVER_NAME}/%1? [R=301,L]
&lt;/pre&gt;


&lt;p&gt;donc si on demande /?qqchose on est redirigé vers /qqchose , je n'ai pas réussis a faire marcher la meme chose pour index.php?
car j'ai un pb de boucle...&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;en écrivant ce billet j'ai eu la révélation, la réponse, la solution.&lt;br /&gt;
je viens de passer le blog en PATH_INFO (il était encore en QUERY_STRING cf vieux billets sur mod_rewrite + dotclear)
j'ai modif la ligne pour le rewrite du blog:&lt;/p&gt;
&lt;pre&gt;  RewriteRule (.*)$ index.php?$1 [L]&lt;/pre&gt;

&lt;p&gt;devenu&lt;/p&gt;
&lt;pre&gt;  RewriteRule (.*)$ index.php/$1 [L]&lt;/pre&gt;

&lt;p&gt;ennorme modif il faut avouer, mais au lieu de redirect les /trucdublog vers /index.php?trucdublog il pointe sur /index.php/trucdublog (en redirect Interne, non visible au client)&lt;br /&gt;&lt;/p&gt;


&lt;p&gt;j'ai donc modif le reste pour que ca marche comme je voulais a savoir /?qqchose &amp;amp; /index.php?qqchose redirigé vers /qqchose&lt;/p&gt;
&lt;pre&gt;
  RewriteCond %{REQUEST_URI} ^(/|/index.php)$
  RewriteCond %{QUERY_STRING} (.+)
  RewriteRule (.*)$ http://%{SERVER_NAME}/%1? [R=301,L]
&lt;/pre&gt;

&lt;p&gt;si la demande est / ou /index.php et que la query_string n'est pas vide (en regexp &quot;+&quot; = 1char mini), on répond 301 et indique la nouvelle url &lt;br /&gt;&lt;/p&gt;


&lt;p&gt;et voila, magie!&lt;br /&gt;
le code HTTP 301 est un &quot;301 	Moved Permanently 	Document déplacé de façon permanente&quot; (&lt;a href=&quot;http://fr.wikipedia.org/wiki/Liste_des_codes_HTTP&quot;&gt;source&lt;/a&gt;) il forcerat le cache à s'update &quot;normalement&quot;
le 302 est un temporaire&lt;/p&gt;</description>
    
    
    
          <comments>http://www.grumpf.net/post/2007/09/18/mod_rewrite-encore-et-toujours#comment-form</comments>
      <wfw:comment>http://www.grumpf.net/post/2007/09/18/mod_rewrite-encore-et-toujours#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grumpf.net/feed/rss2/comments/19</wfw:commentRss>
      </item>
    
  <item>
    <title>deux fois rien</title>
    <link>http://www.grumpf.net/post/2007/09/17/deux-fois-rien</link>
    <guid isPermaLink="false">urn:md5:446ac8ec193278adeb50f21dbd5b3697</guid>
    <pubDate>Mon, 17 Sep 2007 00:04:00 +0200</pubDate>
    <dc:creator>Grumpf</dc:creator>
        <category>geekage</category>
        <category>apache</category><category>linux</category><category>mod_rewrite</category><category>regexp</category>    
    <description>    &lt;p&gt;est ce que c'est pas grand chose?&lt;br /&gt;
non c'est vraiment rien, ou comment simplifier les choses &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; &lt;br /&gt;
la série de regex remplacée par une seule (celle d'&lt;a href=&quot;http://www.grumpf.net/post/2007/09/11/dotclear2-mod_rewrite&quot;&gt;ici&lt;/a&gt;)&lt;/p&gt;
&lt;pre&gt;
  RewriteCond %{REQUEST_URI} ^/post.*    [OR]
  RewriteCond %{REQUEST_URI} ^/category.* [OR]
  RewriteCond %{REQUEST_URI} ^/tag.*     [OR]
  RewriteCond %{REQUEST_URI} ^/feed.*    [OR]
  RewriteCond %{REQUEST_URI} ^/archive.*  [OR]
  RewriteCond %{REQUEST_URI} ^/page.*    [OR]
  RewriteCond %{REQUEST_URI} ^/sitemap.xml
&lt;/pre&gt;

&lt;p&gt;donne&lt;/p&gt;

&lt;pre&gt; RewriteCond %{REQUEST_URI} ^/((post|category|tag|feed|archive|page).*|sitemap.xml)&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.grumpf.net/post/2007/09/17/deux-fois-rien#comment-form</comments>
      <wfw:comment>http://www.grumpf.net/post/2007/09/17/deux-fois-rien#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grumpf.net/feed/rss2/comments/18</wfw:commentRss>
      </item>
    
  <item>
    <title>dotclear2 &amp; mod_rewrite</title>
    <link>http://www.grumpf.net/post/2007/09/11/dotclear2-mod_rewrite</link>
    <guid isPermaLink="false">urn:md5:296cedc535dae700a763e4e1a0d48129</guid>
    <pubDate>Tue, 11 Sep 2007 11:11:00 +0200</pubDate>
    <dc:creator>Grumpf</dc:creator>
        <category>geekage</category>
        <category>apache</category><category>dotclear2</category><category>linux</category><category>mod_rewrite</category>    
    <description>&lt;p&gt;les url formats monhost/monblog/monindex.php?post/date/etc/monpost ne sont pas tres belles.&lt;br /&gt;
voila comment j'ai fait pour avoir un monhost/post/date/etc/monpost&lt;/p&gt;    &lt;p&gt;pour cela on utilise mod_rewrite d'apache (qui permet de faire de la réécriture d'url a la volée)
j'ai fait l'install à la racine de www.grumpf.net, jusque la dotclear était configuré en url&amp;nbsp;: http://www.grumpf.net/? &amp;amp; Méthode QUERY_STRING &lt;br /&gt;
dans dotclear2 on laisse le Méthode QUERY_STRING puisqu'on va réécrire les PATH en index.php?PATH, et on change l'url en http://www.grumpf.net (on supprime le ?)&lt;/p&gt;


&lt;p&gt;le .htaccess placé a la racine &lt;br /&gt;&lt;/p&gt;
&lt;pre&gt;
 RewriteEngine On
 RewriteCond %{REQUEST_URI} ^/post.*     [OR]
 RewriteCond %{REQUEST_URI} ^/category.* [OR]
 RewriteCond %{REQUEST_URI} ^/tag.*      [OR]
 RewriteCond %{REQUEST_URI} ^/feed.*
 RewriteRule (.*)$ index.php?$1 [L]
&lt;/pre&gt;

&lt;p&gt;pour toutes les requettes qui commence par /post, /category, /tag, /feed on réécrit , pour le reste on laisse l'accès direct (images / gallery / etc),
le (.*) devient la variable $1 qu'on passe en paramétres de la page index.php&lt;/p&gt;
&lt;pre&gt;
  [11/Sep/2007:10:45:51 +0200] [www.grumpf.net/sid#812a5b8][rid#829c960/initial] (2) [per-dir /var/www/localhost/htdocs/] rewrite post/2007/09/10/Quand-Hotmail-prend-ces-utilisateurs-pour-des-billes -&amp;gt; index.php?post/2007/09/10/Quand-Hotmail-prend-ces-utilisateurs-pour-des-billes
  [11/Sep/2007:10:45:51 +0200] [www.grumpf.net/sid#812a5b8][rid#82a29d8/initial] (2) [per-dir /var/www/localhost/htdocs/] rewrite tag/linux -&amp;gt; index.php?tag/linux
&lt;/pre&gt;


&lt;p&gt;un grand merci a mon pote google, ainsi qu'à la doc et au debug apache.&lt;/p&gt;

&lt;pre&gt; RewriteLog /var/log/apache2/rewrite.log
 RewriteLogLevel 3&lt;/pre&gt;</description>
    
    
    
          <comments>http://www.grumpf.net/post/2007/09/11/dotclear2-mod_rewrite#comment-form</comments>
      <wfw:comment>http://www.grumpf.net/post/2007/09/11/dotclear2-mod_rewrite#comment-form</wfw:comment>
      <wfw:commentRss>http://www.grumpf.net/feed/rss2/comments/14</wfw:commentRss>
      </item>
    
</channel>
</rss>