J'essaie de rediriger les URL depuis example.net/customname
ou example.net/customname/
vers example.net/my/home.php?username=customname. Cela en soi est pas compliqué:Réécriture d'URL pour exclure les répertoires existants
RewriteRule ^([a-zA-Z0-9_-]+)$ my/home.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ my/home.php?username=$1
Cependant, je veux exclure mes répertoires et fichiers existants, tels que example.net/about/
et example.net/files
. Je n'arrive pas à comprendre comment utiliser RewriteCond (ai-je besoin de plusieurs conditions de réécriture?) Pour exclure des items comme example.net/about/
d'être réécrits en example.net/home.php?username=about
. Comment puis-je faire ceci?
Merci!
EDIT: Voici la solution exacte ...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/?$ my/home.php?url=$1 [NC,L]
En ce qui concerne votre édition: pourquoi utilisez-vous deux ensembles de règles complètement distincts dont la seule différence est un seul caractère? C'est verbeux et inefficace, donc je suggère d'utiliser l'option qualificative (le point d'interrogation) comme localshred et je l'ai fait dans nos réponses. –
Tout à fait raison, j'ai changé ma réponse pour réfléchir. – Wickethewok