Serveur Apache et mod_rewrite : mémo / astuces / hints / tips
Voici mes notes de règles de ré-écriture. Principalement des expressions régulières dont j’ai souvent besoin et que je n’ai pas en tête :
Problème :
Apache ajoute automatiquement des slashes /
si c’est un répertoire.
Solution :
DirectorySlash Off
Risques de sécurite si ça n’est pas bien géré.
Problème :
Chercher une variable dans les paramètres _GET
, y compris en plein milieu (les solutions en général ne sont valides que si la variable est au début dans le _GET
)
Solution :
RewriteCond %{QUERY_STRING} (^|&)nomvariable=valeur(&|$)
Problème :
Prendre en compte toute une séquence de caractères sauf le slash
Solution :
RewriteRule ^/([^/]+)/?$ page.php?page=$1 [L]
ou encore prendre tout sauf le slash et le point :
RewriteRule ^/([^/\.]+)/?$ page.php?page=$1 [L]