2.4.3.5. Ошибка 500 Internal Server Error
Достоверно определить причину возникновения ошибки 500 возможно путём анализа Error-лога сайта. Также в обнаружении источника проблемы может помочь техническая проверка сайта.
Директивы в .htaccess
Часто ошибка 500 связана с неправильно указанными директивами в файле .htaccess, который находится в каталоге вашего сайта. Отредактировать этот файл можно с помощью встроенного редактора файл-менеджера или любого FTP-клиента.
Если было установлено, что проблема связана с файлом .htaccess, то вам следует попробовать внести следующие изменения:
Options +FollowSymLinks— нужно заменить наOptions +SymLinksIfOwnerMatch.Options All -Indexes— нужно заменить наOptions -Indexes.+ExecCGI— нужно удалить.
На хостинге не используется модуль Apache mod_version, поэтому если в .htaccess присутствуют блоки с директивами IfVersion, их также следует удалить, оставив только содержимое блоков, предназначенных для Apache 2.4.
Закомментировать директивы в файле .htaccess можно, поставив в начале строки символ # .
Неверные права на файлы
Внимание!
Не рекомендуется устанавливать права выше640 для файлов и 750 для каталогов, так как это может привести к ошибке 500.
Если в Error-логе сайта присутствует ошибка «Script file is writable by others», то вам необходимо восстановить стандартные права на файлы по инструкции или вручную, указав для файлов права 640.
Такая ситуация может возникать при восстановлении из резервной копии или загрузке файлов нового сайта.
Использование старого синтаксиса директивы FilterProvider
В большинстве случаев эту директиву достаточно закомментировать, поскольку она используется для включения сжатия на основе Content-Type, а на нашем хостинге за сжатие отвечает nginx и до Apache чаще всего эти запросы не доходят.
В формате Apache 2.2 директива выглядит так:
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
В Apache 2.4 эта же директива выглядит так:
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/html'"
Исправить ситуацию можно путём изменения синтаксиса директив со старого на новый.
Комментарии в конце строки
Комментарии в конце строки могут вызывать ошибку «…htaccess: No comments are allowed here».
В более новых версиях Apache для написания комментария требуется вся строка. То есть когда вы добавляете символ #, чтобы сделать комментарий, он должен быть первым непустым символом в строке. Если вы добавите какие-либо непустые символы перед знаком решетки, получите ошибку 500.
Например, любой из этих комментариев является правильным:
# this is a comment
## this is another comment
### multiple pound signs are fine
Примеры недопустимых комментариев, приводящих к ошибке:
ExpiresActive on # this will trigger an error
RedirectMatch 403 /spamhole/ # this will trigger an error
# this will
trigger an error
BOM-символы
В .htaccess при редактировании сторонними редакторами могут быть записаны невидимые BOM-символы, из-за которых и возникает ошибка. Для устранения проблемы следует открыть файл в каком-либо редакторе, пересохранить его в чистой кодировке UTF-8 и загрузить обратно на хостинг.
На іншому хостингу я заливаю в папку файл htaccess з такими двома рядками:
Options +Indexes +Includes -FollowSymLinks
IndexOptions +FancyIndexing
Відповідно коли браузером в ту папку заходжу, отримую список файлів які в тій папці лежать.
Тут отримую помилку 500.
Підкажіть, що саме на що виправити щоб вивести список файлів?