我有一个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>
这工作,但我不能没有在文件系统上存在的目录工作。