8768 sujets

Développement web côté serveur, CMS

Bonjour

Je voudrais faire la chose suivante

monsite/admin_index.php => monsite/maintenance/index.php
monsite/xxxx => monsite/webroot/index.php?xxxx

Voici mon .htaccess
RewriteEngine On

RewriteRule ^admin_(.*)? maintenance/$1 [L]
RewriteCond %{REQUEST_URI} !^admin_$
RewriteRule (.*) toto/$1 [L]

En fait il applique les 2 règles . Je pensais qu'avec le flag L, dès qu'on appliqué une règle on s'arrête.
en gros
admin_index.php devient d'abord maintenance/index.php
puis on applique la seconde règle.
J'ai ajouté RewriteCond pour essayer de ne pas passer dans la seconde règle mais ça ne marche pas.
Ca
Dans le log du serveur on s’aperçoit qu'il boucle et que ça donne
toto/toto/toto/toto/toto/toto/toto/toto/toto/toto/maintenance/index.php

Il y a quelque chose qui m'échappe.
Comme se fait il que ça boucle ?
Pourquoi le test ne marche pas
Voila ce qui devrait te plaire


Options +FollowSymlinks
RewriteEngine on

RewriteRule ^admin_index.php$ maintenance/index.php [L]
RewriteRule ^([_a-zA-Z0-9]*)$ webroot/index.php?url=$1 [L]
Merci pour ta réponse.

En effet ça marche.
Mais bon le mystère demeure.
Pourquoi RewriteRule (.*) webroot/$1 [L] traite tout y compris ce qui est traité par la première règle et pourquoi RewriteRule ^([_a-zA-Z0-9]*)$ webroot/$1 [L] ne le fait pas.
Mystère.
Au passage j'ai du rajouter les règles suivantes pour que ça marche également
RewriteRule ^js/(.*)$ webroot/js/$1 [L]
RewriteRule ^css/(.*)$ webroot/css/$1 [L]
RewriteRule ^img/(.*)$ webroot/img/$1 [L]

Le mystère s'épaissit.
En gros ça marche mais je ne sais pas pourquoi.
Merci en tout cas pour ton aide