修改重写规则与某些单词不匹配


Mod Rewrite Rule not matching certain words

我根本不是mod_rewrite方面的专家,我正试图在下面的规则中添加一个条件:

  1. 不等于"share"的匹配
  2. 不匹配任何有点的内容

RewriteRule ^([^/]*)$ http://domain.com/directory/index.php?key=$1 [L]

http://domain.com/directory/share将不匹配(共享)

http://domain.com/directory/foo.php将不匹配(包含一个点)

http://domain.com/directory/abcde将匹配

http://domain.com/directory/abcde-4将匹配

所有ULR都不会有尾部斜线

任何帮助都将不胜感激

不要通过将.添加到否定字符类来匹配任何带点的内容

RewriteRule ^([^./]*)$ <snip>

不匹配结束/share:

RewriteRule ^([^/]*/share)$ <snip>

使用负前瞻将它们组合为不匹配:

RewriteRule ^([^./])*(?!/share)$ <snip>
相关文章: