URL 重写保留名称

URL rewriting reserved names

在我的 .htaccess 文件中,我有以下重写规则:

RewriteRule ^user/(.*) user.php?username= [NC,L]

采用 domain.com/user/anything 并重写它以用于我的应用程序。

不过,我想改写成

domain.com/anything

唯一的问题是,有些保留文件名在访问时不应该是用户名,例如 index (domain.com/index)。如果用户的名字是 index 怎么办?

您可以使用以下规则从规则中排除现有的目录和文件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*) user.php?username= [NC,L]

如果您想从规则中排除特定的 uris,您可以改用以下内容:

RewriteCond %{REQUEST_URI} !^/user.php [NC]
RewriteRule ^((?!index|upload|foo|bar).+) user.php?username= [NC,L]