Сегодня вечером я обновил свой VPS с Ubuntu 16.04 LTS до Ubuntu 18.04 LTS. Все работало, как ожидалось, была небольшая очистка на проходе php 5.6 и несколько полок запаса на проходе php 7.4. После всех изменений конфигурации и мода Apache перезапустился без единого стона; думал, что мне хорошо идти. Но 3 из 4 моих сайтов не загружались; нет чистой страницы 404, только это сообщение о неправильной конфигурации.
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
После просмотра /var/log/apache2/error.log
, Я нашел это:
[Wed May 06 03:55:16.190469 2020] [core:alert] [pid 5657] [client 10.10.10.10:56897]
/var/www/abc/example.com/.htaccess: No comments are allowed here, referer: https://example.com/
Попробовав несколько разных вещей, кажется, что комментарии, которые начинают строку, НЕ являются проблемой, это комментарии, которые заканчивают обычную строку файла. Удаление или перемещение этих #main office
комментарии к их собственным строкам возвращают все обратно в онлайн. В # Allow from this IP address
строка все еще находится в моем файле .htaccess, но не причиняет мне никакого беспокойства.
<Files wp-login.php>
order deny,allow
Deny from all
#
# Allow from this IP address
allow from 10.10.10.10 #main office
allow from 10.10.11.10 #satellite office
</Files>
Это «ошибка» или «особенность»? Поиск в Google по запросу ".htaccess: здесь комментарии не допускаются" почти ничего не приносит. (Вы знаете, что у вас проблемы, когда 4-е попадание на иностранном языке). Очевидно, что переход на Ubuntu 18.04 или связанные с ним обновления apache или php - это «когда», но ПОЧЕМУ? Почему эта встроенная документация проблематична? Что дает?
Это функция, разработанная Apache синтаксис конфигурации:
Строки, начинающиеся с символа решетки «#», считаются комментариями и игнорируются. Комментарии могутнебыть включенным в ту же строку, что и директива конфигурации. Пробелы перед директивой игнорируются, поэтому для ясности вы можете использовать отступы. Пустые строки также игнорируются.
Это не изменилось в последнее время: так было и в Apache 1.3. Если эти ошибки возникли после обновления, возможно, они .htaccess
файлы раньше даже не использовались. Это также рекомендуется избегать использования .htaccess
без крайней необходимости.