Apache重写规则是重写/ libs,即使它在rewriteconditions中exlcuded

<IfModule mod_rewrite.c> RewriteEngine On RewriteLog "/private/var/log/apache2/rewrite.log" RewriteLogLevel 3 RewriteCond %{REQUEST_URI} !^/etc$ [OR] RewriteCond %{REQUEST_URI} !^/libs$ [OR] RewriteCond %{REQUEST_URI} !^/bin$ [OR] RewriteCond %{REQUEST_URI} !^/home$ [OR] RewriteCond %{REQUEST_URI} !^/var$ [OR] RewriteCond %{REQUEST_URI} !^/content$ [OR] RewriteCond %{REQUEST_URI} !^/siteadmin$ RewriteRule ^/([^/]*)/([^/]*)/(.*)$ /content/wu/$2_$1/$3 [PT,L] </IfModule> 

使用[OR]与多个“不”(!)模式意味着每个URL都将匹配一个RewriteCond。

例子:

  • “/ foo”匹配你所有的“RewriteCond”语句,并且会碰到RewriteRule。
  • “/ etc”被第一个规则排除,但是匹配所有其他的(/ etc不是/ libs),所以它也会碰到RewriteRule。
  • / libs,/ bin和其他的你试图避免被请求。

您可能打算使用默认的AND行为。 你想要的path不是/ etc和/ libs和/ bin和/ home等