Ошибка 500 Internal Server Error
Достоверно определить причину возникновения 500 ошибки возможно, изучив логи сервера.
Еще одним вариантом обнаружения источника проблемы, может быть использование инструмента в "Панель управления - Хостинг - Мои сайты - Техническая проверка сайта".
1. Чаще всего появление этой ошибки связано с неправильно указанными параметрами в файле .htaccess, который находится в папке с Вашим сайтом. Отредактировать данный файл возможно при помощи "Файл-менеджера", получить доступ к которому Вы можете через "Панель управления - Хостинг".
Если было установлено, что проблема связана с файлом .htaccess, то Вам следует попробовать изменить:
директиву Options +FollowSymLinks на Options +SymLinksIfOwnerMatch
директиву Options All -Indexes на Options -Indexes
убрать параметр +ExecCGI
убрать параметры AddHandler, php_value, php_flag
удалить директиву -MultiViews
Закомментировать директивы в файле .htaccess можно поставив в начале строки символ #
Описание процедуры редактирования файла .htaccess можно увидеть в этой инструкции.
2. Не верные права на файлы сайта.
Если в error логе сайта есть ошибка "Script file is writable by others", то Вам необходимо восстановить стандартные права на файлы по инструкции или вручную, указав для файлов права 640.
Такая ситуация может возникать при восстановлении из бекапа или загрузке файлов нового сайта.
3. Использование старого синтаксиса директивы 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'"
В простом случае можно попробовать изменить синтаксис директивы, но в случаях использования регулярных выражений, нужно обернуть их в такую конструкцию:
<IfModule filter_module.c>
<IfVersion >= 2.4>
# здесь версия для 2.4
</IfVersion>
<IfVersion <= 2.2>
# здесь в синтаксисе 2.2
</IfVersion>
</IfModule>
Первый вариант помог исправить Ошибку 500