正则表达式用于 htaccess 以匹配模式,除非目录存在



我在htaccess文件中使用正则表达式来捕获/[用户名]并将其重定向到用户名页面,例如,mywebsite.com/john 将转发到 mywebsite.com/username?u=john。这有效,但我现在想排除与现有目录匹配的任何内容。因此,如果有人转到 mywebsite.com/sign-up,则重定向时会排除此内容,因为该目录(/sign-up)存在。这可能吗,这是正常的做法吗?谢谢。

编辑:理想情况下,我不想手动排除每个现有目录。我希望它对所有现有目录都是自动的。

在它之前使用重写条件。 !-f 表示不是现有文件,!-d 表示不是现有目录。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)$ username?u=$1 [L]

最新更新