我有以下网站结构:
网站——adminpanel
——图像
, . htaccess
——websiteone
——websitetwo
我在adminpanel中放置了。htaccess,用于授权访问目录:
AuthName "protected"
AuthType Basic
AuthUserFile /home/user/.htpasswd
Require valid-user
在websiteone和websitetow中,我有使用文件夹adminpanel的图像和其他内容的页面。
问题:我已经浏览到adminpanel,它要求登录,这就是我想要的,但它也提示登录,当我浏览到websiteone或websitetwo,我想避免登录。这可能是由于访问了adminpanel目录的图像。
是否有其他方法可以使我只能将登录凭据应用于adminpanel,而不能应用于websiteone或websitetwo目录?
我同意在PHP中这样做会更好,因为Apache的mod_auth设置有一些重要的安全问题,但如果您必须这样做,请尝试如下:
在adminpanel文件夹的每个文件夹中,您需要访问而无需密码(例如:,创建一个.htaccess文件,并添加如下内容:
Satisfy Any
Allow from all
这将告诉Apache,所有的身份验证已经满足,并允许从任何地方访问。
如果你需要/想要指定特定的文件,你可以使用files指令:
<Files image.jpg>
Satisfy Any
Allow from all
</Files>
或者您可以使用FilesMatch(在本例中为图像)执行一组匹配模式的文件:
<FilesMatch "'.(gif|jpe?g|png)$">
Satisfy Any
Allow from all
</FilesMatch>
这些应该是你所需要的,在mod_auth设置中戳一些洞,允许匿名访问。