Apacheauthentication:允许公共访问子目录

这可能是一个简单的问题,但我不能在文档中find解决scheme。

我想使用BASIC身份validation来密码保护我的网站。 但我想要一个子目录是不受保护的:

http://mysite.com/ -> BASIC protected http://mysite.com/somedir -> BASIC protected http://mysite.com/someotherdir -> BASIC protected http://mysite.com/public -> not protected 

我没有问题保护所有的网站,但我不知道我怎么能“解除”一个目录。 该网站托pipe在共享主机上,所以我只能访问.htaccess文件来进行configuration。

是否有指示否定身份validation?

谢谢您的帮助 …

不应该是.htaccess的问题,取决于主机允许的内容。

你可以尝试在下面的子文件夹中放置一个.htaccess,但是必须为它所在的目录启用覆盖。

  Allow From All Satisfy Any 

好的,pathserver.com/private/public:

server.com/private/.htaccess

 AuthType Basic AuthName "Private, keep out." Require... 

server.com/private/public/.htaccess

 Allow From All Satisfy Any 

这里的关键是“满足任何”,从上游到上游的要求。 “满意”是默认的。

我相信这可能会做到这一点:

 # put the global auth stuff here ... # put the override here <Location /public> Allow from All Satisfy Any </Location> 

我设法解决这个问题:

 <Directory "/path/to/maindirectory"> [... auth stuff ... ] </Directory> <Directory "/path/to/mysubdirectory"> Allow from All Satisfy Any </Directory> 

不要使用位置,因为它们被设置为区分大小写,并且不会影响实际的文件夹访问,而只是通过URL访问。

所以,例如,如果我写

 http:/mywebsite/STUFF 

要么

 http://mywebsite/stuff 

要么

 http://mywebsite/StUfF 

即使被调用的物理目录是相同的,位置控制也是不同的!

总之,你检查目录“东西”的访问,我可以写在不同的情况下。

另外,在单个目录中使用.htaccess文件,并在别人的位置控制不起作用。

希望它有帮助。