我如何允许访问一个实际上是RewriteRule匹配的apache目录?

我们有一个有很多域名的服务器。 每个域都有一个或多个我们希望通过IP保护的pipe理区域:

  • domain.tld / admin(pipe理员区域)
  • domain.tld / blog / wp-admin(博客子目录中的WordPresspipe理区域)
  • domain.tld / wp-admin(wordpress admin区域)

这是我们用来保护所有站点上所有这些的Apacheconfiguration的一个片段:

<Directory ~ "^/home/user/apache/[^/]+/public/((blog/)?wp\-)?admin"> AllowOverride All Order Deny,Allow Deny from all Allow from 123.45.67.89 23.45.67.89 34.56.78.90 </Directory> 

这限制了上述文件夹中的任何一个只能被这些IP地址查看。 对于大多数网站和博客,这完美的作品。 但是,在一个小网站上,这是行不通的。

认为这可能是不同的是,该网站上的admin文件夹实际上并不存在,而是一个RewriteRule匹配从索引页面提供该页面。 有点奇怪的是, 它阻止/admin并给出了一个403错误,但它不允许列在Allow from规则的IP。

为什么目录匹配和拒绝,但不允许? 这是预期的行为? 我怎样才能解决这个问题?

对于不是目录的<Location> ,请使用<Location>而不是<Directory>