Назад | Перейти на главную страницу

Ошибка Apache2 - .htaccess: здесь нельзя оставлять комментарии

Сегодня вечером я обновил свой 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 без крайней необходимости.