2009-12-06 3 views
1

Je souhaite définir une règle de réécriture "par défaut" pour intercepter tout ce qui ne correspond pas aux entrées de réécriture précédentes. Je l'ai essayé ceci:Définition d'une entrée Apache RewriteRule par défaut

RewriteRule ^(.*)/?$ index.php?url=$1 [L] 

Mais la sortie retournée est:

url = index.php 

Idéalement ce que je veux est d'attacher toutes les valeurs GET à « url » ils seront enregistrés dans mon journal web . Quelqu'un at-il des suggestions pour résoudre ce problème?

Répondre

3

Omettre parenthèses inutiles dans les expressions régulières à chaque fois que vous le pouvez:

RewriteRule .* index.php?url=$0 [L] 

Si vous souhaitez exclure "index.php":

RewriteRule ^(?!index\.php).* index.php?url=$0 [L] 
+0

fonctionne ok merci les gars! – Spoonface

+0

Cela ne fonctionnera pas pour Apache 1.x. – Gumbo

+0

Apache 1.x n'utilise pas la bibliothèque PCRE. – Geert

3

Vous devez exclure la destination de votre règle:

RewriteCond $1 !=index.php 
RewriteRule ^(.*)/?$ index.php?url=$1 [L] 
1

Essayez de supprimer slash:

RewriteRule ^(.*)$ index.php?url=$1 [L] 
Questions connexes