在虚拟子目录中禁用Apache基本身份validation

我有一个networking服务器,完全用基本身份validationlocking

<Location /> AuthType Basic # [...] rest of basic auth stuff require valid-user order deny,allow deny from all Satisfy any </Location> 

一个子目录无需授权即可访问:

 <Location /public> allow from all Satisfy any </Location> 

这工作正常。 现在我想允许访问而不login一些使用mod_rewrite访问的脚本:

 RewriteRule ^phonebook/show/(.+)$ /quicksearchShow.php?uid=$1 [NC] RewriteRule ^phonebook/(.+)$ /quicksearch.php?s=$1 [NC] RewriteRule ^phonebook$ /quicksearch.php [NC] 

我尝试了一些方法:

 <Location ~ "/phonebook*"> Allow from all Satisfy Any </Location> <Location /phonebook> Allow from all Satisfy Any </Location> <LocationMatch "^phonebook.*"> Allow from all Satisfy Any </LocationMatch> 

这些选项都不起作用。 我假设因为/phonebook不是服务器上的实际目录。 所以我尝试了<Files>指令的一些变体:

 <FilesMatch "/quicksearch.*"> Allow from all Satisfy Any </FilesMatch> <FilesMatch "^quicksearch.*"> Allow from all Satisfy Any </FilesMatch> <Files "quicksearch.php"> Allow from all Satisfy Any </Files> 

但是也没有运气。

那么,如何为通过mod_rewrite映射的特定“虚拟”目录设置选项?

所以,我有点放弃了这个方法。 我创build了一个子目录“电话簿”,移动了那里的文件,并将其添加到Apacheconfiguration:

 <LocationMatch "^/(css|js|images|icons|phonebook)/"> Order Deny,Allow Allow from All Satisfy Any </LocationMatch> 

这工作,但我不能没有在文件系统上存在的目录工作。