Version complète: sur le forum Webmaster Hub : Réécriture d'url suivie de redirection 301 via .htaccess
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
alphega
Bonjour,

Afin de pouvoir accéder à une url plus simplement, bien que n'y connaissant pas grand chose, j'ai réussi à écrire la règle suivante dans mon .htaccess:

CODE
RewriteRule   ^rss([0-9]+)\.xml$ http://www.example.com/index.php?act=rssout&id=$1 [L]

Cela fonctionne et j'accède maintenant aussi bien à l'ancienne url ./index.php?act=rssout&id=21 qu'a celle réécrite ./rss21.xml

Seulement, j'aimerais rediriger automatiquement (redirection 301) l'ancienne url vers la nouvelle. J'aurais pensé que le fait de rajouter [R=301,L] en fin de ligne suffirait mais ce n'est pas le cas. Comment est-il possible de réaliser la réécriture et la redirection ?
alphega
J'ai pu trouver une solution après pas mal de recherches, grace à un sujet de webmasterworld: Changing Dynamic URLs to Static URLs
Je ne sais pas si c'est correctement appliqué mais ça fonctionne:

CODE
RewriteRule   ^rss([0-9]+)\.xml$ http://www.example.com/index.php?act=rssout&id=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?act=rssout&id=([0-9]+)\ HTTP/
RewriteRule ^index\.php$ http://www.example.com/rss%1.xml? [R=301,L]

Par contre, je ne comprends pas la signification de ^[A-Z]{3,9}\ ni de HTTP/ dans la 2eme ligne, des explications sont souhaitées ... si quelqu'un s'y connait un peu, merci d'avance.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.