.htaccess 在DirectoryMatch中使用FileMatch的Apache基本身份验证
我想限制对某些特定PDF文件的访问,但我的Apache配置有点问题。我使用FilesMatch指令的工作方式如下:.htaccess 在DirectoryMatch中使用FileMatch的Apache基本身份验证,.htaccess,apache2,.htaccess,Apache2,我想限制对某些特定PDF文件的访问,但我的Apache配置有点问题。我使用FilesMatch指令的工作方式如下: <FilesMatch "\.pdf$"> AuthName "Permission Required" AuthUserFile /path/to/.htpasswd" Require valid-user AuthType Basic </FilesMatch> AuthName“需要权限” AuthUserFile/path
<FilesMatch "\.pdf$">
AuthName "Permission Required"
AuthUserFile /path/to/.htpasswd"
Require valid-user
AuthType Basic
</FilesMatch>
AuthName“需要权限”
AuthUserFile/path/to/.htpasswd”
需要有效用户
AuthType Basic
现在我明白了,我不能只在.htaccess文件中更具体,因此我必须在配置文件中使用LocationMatch或DirectoryMatch。我尝试了以下方法,但没有成功:
<VirtualHost *:80>
DocumentRoot "/var/www/somedomain.com/httpdocs"
ServerName somedomain.com:80
ServerAlias somedomain.com
<DirectoryMatch "^/uploads/(dir1|dir2)">
<FilesMatch "\.pdf$">
AuthName "Permission Required"
AuthUserFile "/var/www/somedomain.com/bin/.htpasswd"
Require valid-user
AuthType Basic
</FilesMatch>
</DirectoryMatch>
</VirtualHost>
DocumentRoot“/var/www/somedomain.com/httpdocs”
ServerName somedomain.com:80
服务器别名somedomain.com
AuthName“需要权限”
AuthUserFile“/var/www/somedomain.com/bin/.htpasswd”
需要有效用户
AuthType Basic
实际文件位于:
我确信它很简单,但我就是不能让它正常工作。你打开了
FilesMatch
,但没有关闭它(这适用于DirectoryMatch
)。对不起,我从错误的位置复制/粘贴了-我确实没有对这行进行注释(现在已在我的代码中修复)Doh!太近了。谢谢你的回答
<VirtualHost *:80>
DocumentRoot "/var/www/somedomain.com/httpdocs"
ServerName somedomain.com:80
ServerAlias somedomain.com
<DirectoryMatch "^/var/www/somedomain.com/httpdocs/uploads/(dir1|dir2)">
<FilesMatch "\.pdf$">
AuthName "Permission Required"
AuthUserFile "/var/www/somedomain.com/bin/.htpasswd"
Require valid-user
AuthType Basic
</FilesMatch>
</DirectoryMatch>
</VirtualHost>
<DirectoryMatch "^/var/www/somedomain.com/httpdocs/uploads/(dir1|dir2)">
#Somemthibg goes here :-D
</DirectoryMatch>