htaccess et réécriture vers spip.php?page=unepage

Bonjour la liste

Voilà, je me trouve face a un problème dont je ne trouve pas la solution... Peut-être l'un d'entre vous l'aurait...

Je suis sur Spip 2.0 RC1

J'ai un fichier nommé database.html dans mon squelette que j'appelle ainsi: spip.php?page=database&param1=mot1&param2=mot2
je suis en train de gérer la réécriture des url de mon site, à l'aide du fichier .htaccess

j'utilise celui de spip 2.0 et place mon parametre de réécriture à l'endroit préconisé par le dit fichier. Jusque là, ok rien de bien spécifique.
mon expression regulière fonctionne correctement. Mais spip m'envoie à chaque fois une erreur 404.
Voici mon expression:

RewriteRule ^[-a-z]+/[-a-z]+/[-a-z]+/[a-z]{3,8}-[0-9]{4}-[1-9]{1,}\.html$ spip.php?page=database [L]

et spip me renvoie a chaque fois une erreur 404. Or si j'appelle directement spip.php?page=database tout fonctionne très bien.
et si mon expression réécrit mon url vers une url qui n'est pas spip.php cela fonctionne sans problème...

Par exemple
RewriteRule ^[-a-z]+/[-a-z]+/[-a-z]+/[a-z]{3,8}-[0-9]{4}-[1-9]{1,}\.html$ test.php [L]

Avez-vous une solution à ce problème ? Le comprenez-vous ?

J'avoie que je suis un peu perdu et ne trouve pas d'explication logique. Peut-être y aurait-il des règles spécifiques à déclarer dans .htaccess ?

Merci !

Jérémie.

Jérémie Jung a écrit :

Bonjour la liste

Voilà, je me trouve face a un problème dont je ne trouve pas la solution... Peut-être l'un d'entre vous l'aurait...
[...]
RewriteRule ^[-a-z]+/[-a-z]+/[-a-z]+/[a-z]{3,8}-[0-9]{4}-[1-9]{1,}\.html$ spip.php?page=database [L]

Je pense plutôt :

RewriteRule
  ^[-a-z]+/[-a-z]+/[-a-z]+/[a-z]{3,8}-[0-9]{4}-[1-9]{1,}\.html$
  spip.php?page=database [R,L]

spip analyse les parametres or il recoit ce qui n'est pas prévu... sauf à passer par une 302..

Merci pour ta réponse Chryjs,

Mais je ne veux pas faire de redirection, mais une simple réécriture.

En fait ma réécriture ne marche pas car je veux réécrire quelque chose du genre /dossier1/dossier2/dosssier3/fichier1.html vers spip.php?page=database&param1=dossier1&param2=dossier2&param3=dossier3... et que ma config spip est en url libre. Il semble qu'il y ait pour le moment un problème de sécurité dans spip 2.0 RC1 du coup il y a un patch qui renvoie un 404 si je suis configuré en url libre et que je fait une redirection dans mon htaccess de type arbo. Donc la solution est de configurer son spip en url arbo. Ce que j'ai fait. Et maintenant ça marche... Bon bien sur ce n'est pas l'idéal dans mon cas, mais je ferais avec en attendant une mise à jour :wink: (Merci au canal IRC de spip pour l'aide)

Jérémie :slight_smile:

Le 10 Dec 2008 à 18:40, chryjs a écrit :

Jérémie Jung a écrit :

Bonjour la liste
Voilà, je me trouve face a un problème dont je ne trouve pas la solution... Peut-être l'un d'entre vous l'aurait...
[...]
RewriteRule ^[-a-z]+/[-a-z]+/[-a-z]+/[a-z]{3,8}-[0-9]{4}-[1-9]{1,}\.html$ spip.php?page=database [L]

Je pense plutôt :

RewriteRule
^[-a-z]+/[-a-z]+/[-a-z]+/[a-z]{3,8}-[0-9]{4}-[1-9]{1,}\.html$
spip.php?page=database [R,L]

spip analyse les parametres or il recoit ce qui n'est pas prévu... sauf à passer par une 302..