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

调整apache mod_rewrite rewriterule以不在物理目录上操作

  •  1
  • martin  · 技术社区  · 16 年前

    我有一个写得太好的重写器:—)

    RewriteRule ^([^/]*)/$ /script.html?id=$1 [L]
    

    这个规则的坏处在于它也匹配我不想要的物理目录。

    我怎么知道 mod_rewrite 忽略物理目录并仅在匹配的目录不存在时应用上述规则?

    2 回复  |  直到 13 年前
        1
  •  3
  •   Chris Cherry    16 年前

    看一看 RewriteCond . 在规则之前放置以下内容以排除目录和文件

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    
        2
  •  0
  •   daniels    16 年前
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]*)/$ /script.html?id=$1 [L]