以下代码 WORKS :
AuthUserFile /etc/apache2/.htpasswd
AuthType Basic
AuthName "Please enter the username and password"
Require valid-user
以下不:
AuthUserFile /etc/apache2/.htpasswd
AuthType Basic
AuthName "Please enter the username and password"
Require valid-user
<Directory /var/www/e>
Satisfy any
</Directory>
并且不是,我的意思是它会抛出服务器默认的500错误。
我正在尝试为403页面创建一个ErrorDocument,但是只要我指定一个,它就会给我一个500错误。我原本以为这可能是因为我试图链接到的403.html文档受密码保护,但事实并非如此。
以下代码也会抛出500:
AuthUserFile /etc/apache2/.htpasswd
AuthType Basic
AuthName "Please enter the username and password"
Require valid-user
ErrorDocument 403 http://google.com
相关文件读数? (我想?)我很抱歉这么新。
root@####:~# cat /etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride none
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
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>
root@#####:~#
我只是想创建一个403文档,指向任何方向都会非常有帮助。我再次道歉这看起来有多么简单,我的google-fu只是不够强大,无法找到准确匹配的资源“创建403错误htaccess导致500错误”
答案 0 :(得分:1)
<Directory>
指令仅允许在服务器上下文中使用(即httpd.cont,apache2.conf,虚拟主机配置或操作系统的类似服务器级配置文件)。
当你考虑它时,这是有意义的,因为.htaccess
已经在目录上下文中。
查看此链接,了解有关Directory
指令的更多信息:http://httpd.apache.org/docs/2.2/mod/core.html#directory
我猜您的ErrorDocument
指令无效,因为您没有为conf文件中的目录设置AllowOverride FileInfo
。这是在指定目录中启用ErrorDocument和其他文件级指令所必需的。
有关AllowOverride
:http://httpd.apache.org/docs/current/mod/core.html#allowoverride
除非您有特定理由在.htaccess
中放置指令,否则您可以考虑将它们放在conf文件中的<Directory>
块中并使AllowOverride
= none
对于所有目录。从性能角度来看,这更好。由于服务器不需要检查请求层次结构中的每个目录以查找.htaccess
指令。