Мой сайт имеет только 4-5 статических страниц. index.html & index.php оба есть. index.html работает нормально. Если я перейду на index.php, он даст 500 Internal Server Error
. Я не знаю, где моя ошибка?
Примечание. Если я использую файл .htaccess с php_flag display_errors 1
,
Он также показывает Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Если я использую файл .htaccess с empty
,
Он также показывает Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
И если я дам ../contact-us.php
, он будет показывать правильно.
Благодаря…
500 Внутренняя ошибка сервера отображается, если ваш php-код имеет фатальные ошибки, но отображение ошибок отключено. Вы можете попробовать это, чтобы увидеть ошибку, а не 500 страниц ошибок:
В вашем php-файле:
ini_set('display_errors', 1);
В файле .htaccess:
php_flag display_errors 1
Файл PHP должен иметь разрешения 644. Любая папка, содержащая файлы PHP и доступ к PHP (например, для загрузки файлов), должна иметь разрешения, равные 755. PHP будет запускать ошибку 500 при работе с любым файлом или папкой с установленными разрешениями до 777!
Я знаю, что этот вопрос старый, однако я столкнулся с этой проблемой в Windows 8.1, пытаясь использовать файлы .htaccess для перезаписи. Мое решение было простым, я забыл изменить следующую строку в httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
в
LoadModule rewrite_module modules/mod_rewrite.so
Перезагрузили монитор Apache, теперь все работает хорошо. Просто опубликуйте это как ответ, потому что кто-то в будущем может столкнуться с одной проблемой с простым исправлением.
Удачи!
У меня была эта проблема, потому что я пытался подключиться к MySQL, но у меня не было требуемого пакета. Я понял это из-за комментария @ Amadan, чтобы проверить журнал ошибок. В моем случае у меня была ошибка: Call to undefined function mysql_connect()
Если ваш PHP-файл имеет какой-либо код для подключения к базе данных My-SQL, вам может потребоваться сначала установить php5-mysql
. Я получал эту ошибку, потому что я ее не установил. Все мои права на файлы были хорошими. В Ubuntu вы можете установить его с помощью следующей команды:
sudo apt-get install php5-mysql
Google направляет меня сюда, но это не помогло мне, это очень общий вопрос, и есть разные причины, поэтому я размещаю свою проблему и решение здесь для справки, если кто-то может это прочитать позже.
Другой возможной причиной ошибки 500 является синтаксическая ошибка в функции header(...)
, например:
header($_SERVER['SERVER_PROTOCOL'] . '200 OK');
Имейте в виду, что между протоколом сервера и кодом состояния должно быть место, поэтому оно должно быть:
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
Поэтому я предлагаю проверить ваш HTTP-заголовок, если он есть в вашем коде.
Он менял окончание строк (от Windows CRLF до Unix LF) в файле .htaccess
который исправил его для меня.