.htaccess выдает ошибку 500 при большинстве изменений
Следующий код работает:
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 по умолчанию на сервере.
Я делаю это в попытке получить ErrorDocument для страницы 403, но каждый раз, когда я указываю одну, мне выдается ошибка 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, и было бы очень полезно указывать в любом направлении. Я снова извиняюсь за то, насколько это может показаться упрощенным, мой гугл-фу недостаточно силен, чтобы найти ресурс, который точно соответствует "создание ошибки 403, htaccess вызывает ошибку 500"
1 ответ
<Directory>
Директивы разрешены только в контексте сервера (т. е. httpd.cont, apache2.conf, конфигурации виртуальных хостов или аналогичные файлы конфигурации на уровне сервера для вашей ОС).
Это имеет смысл, когда вы думаете об этом, так как .htaccess
Уже в контексте каталога.
Проверьте эту ссылку для получения дополнительной информации о Directory
директива: http://httpd.apache.org/docs/2.2/mod/core.html
Я угадываю твои ErrorDocument
директива не работает, потому что у вас нет AllowOverride FileInfo
установить для каталога в вашем файле conf. Это необходимо для включения ErrorDocument и других директив на уровне файлов в указанном каталоге.
Смотрите эту ссылку для получения дополнительной информации о AllowOverride
: http://httpd.apache.org/docs/current/mod/core.html
Если у вас нет особой причины для включения .htaccess
вы могли бы рассмотреть возможность их <Directory>
блоки в файле conf и создание AllowOverride
знак равно none
для всех каталогов. Это лучше с точки зрения производительности. Поскольку серверу не нужно проверять каждый каталог в иерархии запроса, чтобы найти .htaccess
инструкции.