我正在尝试配置一个需要在根目录中受密码保护的 apache 虚拟主机。
因此我创建了一个 .htpasswd 文件(带有 sha 密码)并配置了 .htaccess 文件。但是无论我做什么,网页上都会出现错误 500(内部服务器错误),并且在 error.log 中我看到以下内容:
/var/www/ninja/www/.htaccess: deny not allowed here
或者如果我将拒绝排除在.htaccess 之外:
AuthUserFile not allowed here
.htpasswd 和 .htaccess 文件对于 apache 都是可读的,并且设置为 www-data 用户和组。我还尝试将这些规则添加到虚拟主机配置文件中,但这也没有奏效。
你能帮助我吗?
谢谢!
配置文件apache:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName ninja
DocumentRoot /var/www/ninja/www
ServerAlias ninja
<Directory /var/www/ninja/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Indexes
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
htaccess 文件:(放置在 /var/www/ninja/www/)
Deny from all
#Allow from (You may set IP here / to access without password)
AuthUserFile /var/www/ninja/.htpasswd
AuthName authorization
AuthType Basic
require valid-user
以下是 mods-enabled 目录的 ls
alias.conf -> ../mods-available/alias.conf
alias.load -> ../mods-available/alias.load
auth_basic.load -> ../mods-available/auth_basic.load
authn_file.load -> ../mods-available/authn_file.load
authz_default.load -> ../mods-available/authz_default.load
authz_groupfile.load -> ../mods-available/authz_groupfile.load
authz_host.load -> ../mods-available/authz_host.load
authz_user.load -> ../mods-available/authz_user.load
autoindex.conf -> ../mods-available/autoindex.conf
autoindex.load -> ../mods-available/autoindex.load
cgi.load -> ../mods-available/cgi.load
deflate.conf -> ../mods-available/deflate.conf
deflate.load -> ../mods-available/deflate.load
dir.conf -> ../mods-available/dir.conf
dir.load -> ../mods-available/dir.load
env.load -> ../mods-available/env.load
mime.conf -> ../mods-available/mime.conf
mime.load -> ../mods-available/mime.load
negotiation.conf -> ../mods-available/negotiation.conf
negotiation.load -> ../mods-available/negotiation.load
php5.conf -> ../mods-available/php5.conf
php5.load -> ../mods-available/php5.load
reqtimeout.conf -> ../mods-available/reqtimeout.conf
reqtimeout.load -> ../mods-available/reqtimeout.load
setenvif.conf -> ../mods-available/setenvif.conf
setenvif.load -> ../mods-available/setenvif.load
status.conf -> ../mods-available/status.conf
status.load -> ../mods-available/status.load
答案1
FileInfo Indexes
/var/www/ninja/www/ 上的 Apache 目录指令仅允许通过 .htaccess 文件修改行为。请参阅 Apache 文档允许覆盖。
请修改AllowOverride
以允许本地配置AuthConfig
导致:
<Directory /var/www/ninja/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Indexes Authconfig
</Directory>
答案2
您的配置应该添加AuthConfig 限制在
允许覆盖 FileInfo 索引
成为
允许覆盖 FileInfo 索引AuthConfig 限制