代码之家  ›  专栏  ›  技术社区  ›  frosty

URL重写保留名称

  •  1
  • frosty  · 技术社区  · 8 年前

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

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

    接受 domain.com/user/anything 并将其重写为在我的应用程序中使用。

    然而,我想将其改写为

    domain.com/anything .

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

    1 回复  |  直到 8 年前
        1
  •  0
  •   Amit Verma    8 年前

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

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^(.*) user.php?username=$1 [NC,L]
    

    如果要从规则中排除特定URI,可以使用以下方法:

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