我在htaccess文件中使用正则表达式来捕获/ [用户名]并将其重定向到用户名页面,例如,mywebsite.com / john将转发到mywebsite.com/username?u=john。这有效,但我现在想要排除与存在的目录相匹配的任何内容。因此,如果有人访问mywebsite.com/sign-up,则重定向将其排除,因为该目录(/ sign-up)存在。这是可能的,这是正常的做法吗?谢谢。
编辑:理想情况下,我不想手动排除每个现有目录。我希望它对所有现有目录都是自动的。
答案 0 :(得分:0)
在它之前使用重写条件。 !-f表示不是现有文件,! - d表示不是现有目录。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)$ username?u=$1 [L]