Support pour les vieux urls avec rewrite

Bonjour,

J'ai fait une conversion d'une site en Spip 1.7 à Spip 1.9. Mais les urls
dans Google sont encore de Spip 1.7. Comment est-ce que je peux supporter
les vieux urls? Par exemple article.php?id_article=123 devrait être
spip.php?article123. J'ai essayé avec un htacces:

RewriteEngine on
RewriteRule article\.php\?id_article\=([0-9]+)$ spip.php?article$1 [R]

Mais ca ne fonctionne pas. Est-ce que quelqu'un a des idées?

Bart

Bart Braem wrote:

Bonjour,

J'ai fait une conversion d'une site en Spip 1.7 à Spip 1.9. Mais les urls
dans Google sont encore de Spip 1.7. Comment est-ce que je peux supporter
les vieux urls? Par exemple article.php?id_article=123 devrait être
spip.php?article123. J'ai essayé avec un htacces:

RewriteEngine on
RewriteRule article\.php\?id_article\=([0-9]+)$ spip.php?article$1 [R]

Mais ca ne fonctionne pas. Est-ce que quelqu'un a des idées?

Bart

L'expression ne porte que sur le "path" pas sur le "query" (ce qu'il y a après le ?, il faudrait utiliser RewriteCond sur la variable %{QUERY_STRING} pour ça ...

Mais c'est fait d'avance !

1.9 est livrée avec un fichier htaccess.txt qu'il suffit de renommer .htaccess (avec un point , hein) pour faire ce travail.

On y trouve entre autre:
...
# Compatibilite avec les anciennes URLS appelant directement des fichiers php
RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$
spip.php?page=$1 [QSA,L]
...
Qui devrait faire ta vie.

Le RewriteBase du début est important si tu es dans un sous-répertoire.

C'est pas beau, spip ?
--
toggg

bertrand Gugger wrote:

C'est pas beau, spip ?

Je n'avais pas vu ce fichier...
C'est super spip, merci bien!

Bart