我已通过以下方式阻止了 httpd.conf 文件中的 .htaccess 文件: 要求全部被拒绝
我的httpd.conf:
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/var/www/html">
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ~ "^\.?ht(access|passwd)(\.dist)?">
Require all denied
</Files>
IncludeOptional sites/*.conf
这是我的虚拟主机:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/site/
<Location />
AuthUserFile /etc/httpd/conf/passwd
AuthName "ADMIN AREA"
AuthType Basic
require valid-user
Order allow,deny
Allow from 10.0.0.0/8
satisfy any
</Location>
<Directory /var/www/site/>
Options +FollowSymlinks -Multiviews
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
现在,当我使用指令 location 仅允许某些 IP 地址访问或使用登录名和密码时,该地址可以访问 .htaccess 文件。我该如何解决这个问题?任何人都无法查看 .htaccess。
答案1
您将新旧指令混合在一起,这可能会产生意想不到的后果。特别是mod_access_compat
将用于处理诸如 、 之类的事情Order allow,deny
,并将优先mod_authz_host
于新指令。看升级到2.4。