我试图阻止对 apache 中特定文件夹的直接访问。
我的文件夹结构:
/var/www/html - page.html
- 私有(private)文件夹
-CSS
-jss
我正在尝试使用密码保护私有(private)文件夹。
我完成了以下步骤:
1.在私有(private)文件夹中创建一个 .htacess 文件。
.htacess 文件:
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
2.在/etc/apache2 中创建一个带有
htpasswd
的 .htpasswd 文件但是当我访问 10.0.0.1/private 时,我可以在没有密码的情况下浏览这个目录。
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AddHandler cgi-script .cgi
</Directory>
<Directory /var/www/>
Options All
</Directory>
AccessFileName .htaccess
还有什么问题吗?我将写入权限设置为
.htaccess
和 .htpasswd
sudo chmod 777 /var/www/html/private/.htaccess
和
sudo chmod 777 /etc/apache2/.htaccess
有什么建议么 ?
最佳答案
首先,你不应该使用 .htaccess
如果您可以编辑 .conf 文件。
对于您的问题,当 AllowOverride
指令设置为 None
, .htaccess 文件被完全忽略。在这种情况下,服务器甚至不会尝试读取文件系统中的 .htaccess 文件。
您可以尝试将此添加到您的 /etc/apache2/apache2.conf
:
<Directory "/var/www/html/private">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
关于apache - 为什么 .htaccess 不阻止 apache 中的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40675578/