При работе веб-сайта вы можете столкнуться с ошибками:
- .htaccess: Invalid command 'Order',
- .htaccess: Invalid command 'allow',
- .htaccess: Invalid command 'Deny'
У всех этих ошибок одинаковая причина, хотя и текст сообщения может чуть различаться.
При этом сайт выдаёт малоинформативное сообщение о проблемах с сервером, а именно ошибку 500 Internal Server Error. То есть для выяснения истинной причины проблемы нужно обратиться к логам веб-сервера, в первую очередь к логам ошибок.
На странице веб-сайта при этом отображается:
500 Internal Server Error Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.
Если заглянуть в журнал доступа веб-сервера и в логи ошибок веб-сервера Apache, то там будет показано примерно следующее:
[Fri Nov 15 11:52:35.396183 2019] [core:alert] [pid 4916:tid 1228] [client ::1:49892] C:/Server/data/htdocs/Test/COA3/.htaccess: Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration [Fri Nov 15 11:53:39.953167 2019] [core:alert] [pid 4916:tid 1300] [client ::1:50010] C:/Server/data/htdocs/Test/COA3/.htaccess: Invalid command 'allow', perhaps misspelled or defined by a module not included in the server configuration [Fri Nov 15 11:53:46.230342 2019] [core:alert] [pid 4916:tid 1228] [client ::1:50011] C:/Server/data/htdocs/Test/COA3/.htaccess: Invalid command 'Deny', perhaps misspelled or defined by a module not included in the server configuration
Проблема вызвана директивами контроля доступа (они используются для блокировки пользователей по IP, например). В Apache 2.2 используются директивы Allow, Deny и Order, которые обеспечиваются старой версией модуля mod_access_compat. Для версии Apache 2.4 они являются устаревшими и будут убраны в будущих релизах Apache. Если вы столкнулись с приведёнными выше ошибками, значит ваша версия Apache уже не поддерживает работу с ними.
Решить эту проблему очень просто — удалите все записи с Allow, Deny и Order из файлов .htaccess. Чтобы продолжить блокировать IP адреса, сделайте это с помощью новых директив.
Например, чтобы закрыть доступ к сайту с определённых IP адресов используйте следующую конструкцию:
<RequireAll> Require all granted Require not ip 213.167.206.7 </RequireAll>
Другие подробности и примеры блокировки по IP и разрешению доступа по IP вы найдёте в статье «Контроль доступа к сайту (блокировка по IP, User-Agent)».
Связанные статьи:
- Как в PHP 8 показать все ошибки (99.1%)
- Защита контента веб-сайта (98.2%)
- Как настроить аутентификацию по паролю с Apache в Debian, Ubuntu и производных (98.2%)
- Решение проблемы с ошибкой Symbolic link not allowed или link target not accessible (57.9%)
- Ошибка «No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.1-fpm.sock (*:80) failed» (РЕШЕНО) (57.9%)
- Linux не видит Wi-Fi на чипсете Intel. Ошибка «firmware: failed to load iwlwifi» (РЕШЕНО) (RANDOM - 1.9%)