Ошибка 500 при изменении htaccess

I receive 500 internal server error on my website. I think this is because of .htaccess file, but I don’t know what’s wrong with it.

Server: DirectAdmin, Linux-based

Contents of the .htaccess file is as the following:

# BEGIN All In One WP Security
#AIOWPS_BLOCK_WP_FILE_ACCESS_START
<files license.txt>
order allow,deny
deny from all
</files>
<files wp-config-sample.php>
order allow,deny
deny from all
</files>
<files readme.html>
order allow,deny
deny from all
</files>

#AIOWPS_BLOCK_WP_FILE_ACCESS_END
#AIOWPS_BASIC_HTACCESS_RULES_START
<files .htaccess>
order allow,deny
deny from all
</files>
ServerSignature Off
LimitRequestBody 10240000
<files wp-config.php>
order allow,deny
deny from all
</files>
#AIOWPS_BASIC_HTACCESS_RULES_END
#AIOWPS_PINGBACK_HTACCESS_RULES_START
<IfModule mod_alias.c>
RedirectMatch 403 /(.*)/xmlrpc.php$
</IfModule>
#AIOWPS_PINGBACK_HTACCESS_RULES_END
#AIOWPS_DISABLE_INDEX_VIEWS_START
Options All -Indexes
#AIOWPS_DISABLE_INDEX_VIEWS_END
#AIOWPS_DISABLE_TRACE_TRACK_START
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
#AIOWPS_DISABLE_TRACE_TRACK_END
#AIOWPS_FIVE_G_BLACKLIST_START
# 5G BLACKLIST/FIREWALL (2013)
# @ http://perishablepress.com/5g-blacklist-2013/

# 5G:[QUERY STRINGS]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ("|%22).*(<|>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (javascript:).*(;) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR]
RewriteCond %{QUERY_STRING} (\|../|`|='$|=%27$) [NC,OR]
RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR]
RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR]
RewriteCond %{QUERY_STRING} (boot.ini|echo.*kae|etc/passwd) [NC,OR]
RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|[|%) [NC]
RewriteRule .* - [F]
</IfModule>

# 5G:[USER AGENTS]
<IfModule mod_setenvif.c>
# SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out
<limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=keep_out
</limit>
</IfModule>

# 5G:[REQUEST STRINGS]
<IfModule mod_alias.c>
RedirectMatch 403 (https?|ftp|php)://
RedirectMatch 403 /(https?|ima|ucp)/
RedirectMatch 403 /(Permanent|Better)$
RedirectMatch 403 (=\'|=\%27|/\'/?|).css()$
RedirectMatch 403 (,|)+|/,/|{0}|(/(|...|+++|||\"\")
RedirectMatch 403 .(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
RedirectMatch 403 /(contac|fpw|install|pingserver|register).php$
RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107_)
RedirectMatch 403 (eval(|_vti_|(null)|echo.*kae|config.xml)
RedirectMatch 403 .well-known/host-meta
RedirectMatch 403 /function.array-rand
RedirectMatch 403 );$(this).html(
RedirectMatch 403 proc/self/environ
RedirectMatch 403 msnbot.htm)._
RedirectMatch 403 /ref.outcontrol
RedirectMatch 403 com_cropimage
RedirectMatch 403 indonesia.htm
RedirectMatch 403 {$itemURL}
RedirectMatch 403 function()
RedirectMatch 403 labels.rdf
RedirectMatch 403 /playing.php
RedirectMatch 403 muieblackcat
</IfModule>

# 5G:[REQUEST METHOD]
<ifModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</IfModule>

# 5G:[BAD IPS]
<limit GET POST PUT>
Order Allow,Deny
Allow from all
# uncomment/edit/repeat next line to block IPs
# Deny from 123.456.789
</limit>
#AIOWPS_FIVE_G_BLACKLIST_END
#AIOWPS_BLOCK_SPAMBOTS_START
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post.php(.*)$
RewriteCond %{HTTP_REFERER} !^http://(.*)?.spna.co.ir [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule .* http://127.0.0.1 [L]
</IfModule>
#AIOWPS_BLOCK_SPAMBOTS_END
# END All In One WP Security

# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json
<IfModule mod_mime.c>
# DEFLATE by extension
AddOutputFilter DEFLATE js css htm html xml
</IfModule>
</IfModule>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

And here’s what the Apache Error Log says:

[Thu Jan 16 00:19:08 2014] [alert] [client 157.55.35.85] /home/sapna/domains/spna.co.ir/public_html/.htaccess: Option All not allowed here

I would be grateful if you help me find out what causes the 500 internal server error.

Thanks.

Страницу с кодом ответа 500 веб-сервер возвращает, когда не может обработать запрос из-за ошибок в файлах сайта.

Внешний вид ошибки 500 зависит от того, чем она вызвана. При неполадках в скриптах сайта отобразится пустая страница, сообщение HTTP ERROR 500 или текст обработчика PHP.

Если проблема в файле .htaccess — сообщение Internal Server Error.

Часто ошибку 500 можно легко устранить даже не имея знаний в области веб-разработки. О том, как это сделать, расскажем далее.

Ошибки в файле .htaccess

Сообщение Internal Server Error выводится, когда в файле .htaccess есть ошибки. Переименуйте файл .htaccess и проверьте корректность работы сайта. Если он доступен, удалите правила, которые были добавлены последними, или восстановите старый файл из резервной копии.

Ошибки в скриптах сайта

Пустая страница — не всегда признак ошибки 500. Поэтому в первую очередь узнайте код ответа, с которым она открывается. Это можно сделать при помощи инструментов разработчика в браузерах.

Инструменты разработчика — функция для исследования работы сайта. Она позволяет узнать время ответа сервера, код ответа, посмотреть текст возникших ошибок и многое другое.

Нажмите сочетание клавиш Ctrl+Shift+I или используйте меню браузера:

  • Mozilla Firefox — «Веб-разработка» → «Инструменты разработчика»;
  • Google Chrome — «Дополнительные инструменты» → «Инструменты разработчика»;
  • Opera — «Разработка» → «Инструменты разработчика».

Перейдите во вкладку «Сеть (Network)». На ошибку 500 указывает соответствующее число в колонке «Статус».

Статус пустой страницы может быть и 200 (Ok). В таком случае проверьте, есть ли содержимое в индексном файле сайта, очистите кеш вашей CMS. Если ранее сайт работал корректно, восстановите его из резервной копии.

Вывод ошибок на сайте

Вывод ошибок PHP на хостинге по умолчанию выключен. Чтобы увидеть их текст, добавьте в файл .htaccess правило: php_value display_errors 1 и обновите страницу сайта.

Если текст не отобразился, включите вывод ошибок через конфигурационный файл CMS. Он расположен в корневой директории сайта.

WordPress

Замените в файле wp-config.php строку define(‘WP_DEBUG’, false); на define(‘WP_DEBUG’, true);

Joomla

Измените значение переменных debug и error_reporting в configuration.php на: public $debug = '1'; и public $error_reporting = 'maximum';

1С-Битрикс

В конфигурационном файле по пути ~/public_html/bitrix/php_interface/dbconn.php замените значение переменных DBDebug и DBDebugToFile на: $DBDebug = true; и $DBDebugToFile = true;

Laravel

В файле .env измените APP_DEBUG=false на APP_DEBUG=true

Алгоритм устранения ошибки можно найти в интернете, поместив ее текст в строку любой поисковой системы. Если с помощью найденной информации возобновить работу сайта не получится, восстановите его из резервной копии. Наши специалисты могут помочь с восстановлением. Для этого направьте обращение из раздела «Поддержка» Панели управления.

Журнал ошибок PHP

Иногда ошибка не выводится на странице или возникает периодически: ее тяжело отследить. Чтобы узнать текст таких ошибок, записывайте информацию о них в файл — журнал ошибок PHP. Подключите его, добавив в .htaccess строку: php_value error_log /home/username/domains/domain.ru/php_errors.log и обновите страницу сайта.

Откройте создавшийся файл журнала с помощью Файлового менеджера в Панели управления. Чтобы просматривать возникающие ошибки в реальном времени, отметьте опцию «Включить автообновление».

Быстро возобновить работу сайта можно, восстановив его из резервной копии за дату, когда ошибок не было. Если восстановление нежелательно, обратитесь к разработчику.

Для устранения некоторых ошибок не требуется специальных знаний. Рассмотрим самые распространенные.

Нехватка оперативной памяти

Ошибка с текстом Allowed memory size возникает из-за нехватки оперативной памяти для выполнения скрипта: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 81 bytes) in /home/username/domains/domain.ru/public_html/somescript.php

Чтобы исправить ее, увеличьте лимит оперативной памяти, добавив в файл .htaccess директиву:

php_value memory_limit 512M

Вместо «512» укажите необходимый объем памяти. Максимальное значение ограничивается тарифом.

Текст Out of memory означает, что достигнут лимит оперативной памяти по тарифному плану:

PHP Fatal error: Out of memory (allocated 39059456) (tried to allocate 262144 bytes) in /home/username/domains/domain.ru/public_html/somescript.php

Оптимизируйте работу скриптов, чтобы они потребляли меньше памяти. Объемную загрузку или выгрузку данных производите частями. Если оптимизацию произвести невозможно, измените тариф на тот, по которому предоставляется достаточно памяти для комфортной работы сайта.

Ошибки в CMS

При обновлении CMS случаются синтаксические ошибки:

PHP Parse error: syntax error, unexpected '[', expecting ')' in /home/username/domains/domain.ru/public_html/wp-content/plugins/wordpress-23-related-posts-plugin/config.php on line 130

Это происходит из-за того, что новые функции CMS не поддерживают устаревшие версии PHP. Чтобы исправить ошибку, измените версию PHP для сайта на более современную в разделе «Сайты» → «Веб-серверы».

Если предыдущая рекомендация не помогла, обратите внимание на путь до неработающего скрипта: там может быть указан каталог плагина или темы. Чтобы исправить ошибку, отключите их. Для этого переименуйте папку, в которой они расположены. После устранения ошибки авторизуйтесь в административной части сайта и измените тему или переустановите плагин.

Чтобы исправить большинство ошибок PHP, достаточно изучить их текст и принять меры, указанные в статье. Если вам не удается справиться с ней самостоятельно, обратитесь в службу поддержки.

Была ли эта инструкция полезной?

The content of .htaccess is:

php_value upload_max_filesize 64M

Works on localhost, screws up every hosting server I upload it to.
The error.log says: Invalid command ‘php_value’, perhaps misspelled or defined by a module not included in the server configuration

Is there another way to change the upload_max_filesize?

asked Apr 2, 2011 at 12:29

A-OK's user avatar

A-OKA-OK

3,16410 gold badges34 silver badges42 bronze badges

7

If php_value is not recognized as a valid command, it may be because PHP is not installed as an Apache module. Create a php file with the following contents:

<?php phpinfo();

Run the file to show your PHP configuration. Search the page (Ctr+F) for «mod_php». If you don’t find it anywhere, this explains your problem.

If you have access to php.ini, you may be able to fix your problem by editing that file instead. At the phpinfo page, look at the value under Loaded Configuration File for the location of the file to edit. On Linux, it will be something such as /usr/local/lib/php.ini

Open the ini file (it’s just a text file) and look for the setting you want to change. If it’s not present, just add a line and set it as desired: upload_max_filesize=64M

Save the file and restart the Apache server.

answered Sep 5, 2015 at 22:58

BeetleJuice's user avatar

BeetleJuiceBeetleJuice

39.2k18 gold badges101 silver badges163 bronze badges

2

If you don’t want to remove the php_flag command in .htaccess but want to avoid the error, wrap the command as follows:

<IfModule mod_php5.c>
    php_flag display_errors 0
    php_flag display_startup_errors 0
</IfModule>

If you’re using PHP7, use <IfModule mod_php7.c>

answered Feb 6, 2017 at 20:20

bart's user avatar

bartbart

14.9k21 gold badges75 silver badges103 bronze badges

0

For other readers with the same problem and access to the server, this could also be caused by a misconfiguration of PHP as a module of apache. You can fix it reinstalling the module (or configuring the route to libphp.so by yourself in php.ini).

Have in mind that purge will remove the configuration of the packages which usually is nothing to worry, but you are warned just in case.

sudo apt-get purge libapache2-mod-php libapache2-mod-php7.2
sudo apt-get install libapache2-mod-php

answered Dec 10, 2018 at 12:04

PhoneixS's user avatar

PhoneixSPhoneixS

10.5k6 gold badges57 silver badges71 bronze badges

3

The problem was the hosting provider, they only allow changing this via php.ini

answered Apr 16, 2011 at 12:48

A-OK's user avatar

A-OKA-OK

3,16410 gold badges34 silver badges42 bronze badges

0

It seems like the php module is not loaded. Make sure, it is installed with

sudo apt-get install libapache2-mod-php

and check if it is enabled in apache with

ll /etc/apache2/mods-enabled/*php*

if it is installed but not enabled, enable it (depending on your php-version) e.g. for PHP 8.0 with

sudo a2enmod php8.0.load

and restart apache

sudo apache2ctl graceful

answered Apr 27, 2021 at 16:19

rubo77's user avatar

rubo77rubo77

19.3k31 gold badges132 silver badges225 bronze badges

I too was receiving a 500 internal server error. My error log showed:
Invalid command ‘php_value’, perhaps misspelled or defined by a module not included in the server configuration

I tried updating upload_max_filesize as suggested but it didn’t work for me. The last line of my .htaccess file had:

php_value max_execution_time 120

I removed that line and the site resolved perfectly.

answered Oct 15, 2021 at 17:26

Kisha Kindle's user avatar

  1. Create .user.ini file
  2. Add the line upload_max_filesize=»5M»

answered Mar 10, 2022 at 4:33

Jhonny Ramirez Zeballos's user avatar

В данной статье я постараюсь описать самые частые примеры возникновения ошибки 500 на вашем сайте и решения данной ошибки. Вы открыли страничку вашего сайта и видите сообщение об ошибке 500 (Internal Server Error) — не паникуйте и вспомните, какие изменения были сделаны перед её возникновением, или зайдите в личный кабинет управления хостингом и ознакомьтесь с логами ошибок — скорее всего в них написано что именно вызывает ошибку 500.

Чаще всего ошибку вызывает:

inet.ws - Powerful VPS around the World!
  1. Тема оформления
  2. Плагин(ы)
  3. Файл .htaccess

Давайте рассмотрим эти варианты по порядку.

1. Тема оформления

Вы нашли или приобрели новую понравившуюся вам тему оформления, но после её установки при входе на сайт выдаётся ошибка о его некорректной работе (ошибка 500). При входе в консоль управления тоже наблюдается ошибка 500.

Для восстановления работы сайта можно воспользоваться одним из следующих способов:

1.1. FTP

Зайдите на FTP вашего сайта и найдите папку в которой находятся ваши темы оформления. По умолчанию это /wp-content/themes/

Переименуйте, удалите или исправьте текущую тему оформления сайта.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Примечание: достаточно добавить лишний символ в имя папки с названием темы оформления.

Теперь при входе на сайт вы видите пустую страницу, но никаких сообщений об ошибке нет. Это как раз то чего мы и хотели достичь.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Примечание: достаточно добавить лишний символ в имя папки с названием темы оформления.

Теперь при входе на сайт вы видите пустую страницу, но никаких сообщений об ошибке нет. Это как раз то чего мы и хотели достичь.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Далее заходим в панель администратора WordPress и переходим в темы оформления. Получаем сообщение о том что активирована другая тема оформления.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Примечание: часто пользователи удаляют стандартные темы оформления, а зря. Они являются эталонными, и если вы не правили код этих тем, тогда стоит активировать одну из них после восстановления сайта.

Загрузить стандартные темы оформления можно здесь:

  • TwentyTen
  • TwentyEleven
  • TwentyTwelve

1.2. PhpMyAdmin

Если вы удалили стандартную тему оформления или отредактировали её, и она не работает, то можно скачать её заново. Ссылки для загрузки тем выше.

Далее, заходим в phpMyAdmin:

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Примечание: часто пользователи удаляют стандартные темы оформления, а зря. Они являются эталонными, и если вы не правили код этих тем, тогда стоит активировать одну из них после восстановления сайта.

Загрузить стандартные темы оформления можно здесь:

  • TwentyTen
  • TwentyEleven
  • TwentyTwelve

1.2. PhpMyAdmin

Если вы удалили стандартную тему оформления или отредактировали её, и она не работает, то можно скачать её заново. Ссылки для загрузки тем выше.

Далее, заходим в phpMyAdmin:

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему
Выбираем Базу Данных вашего сайта:

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Переходим во вкладку SQL:

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Переходим во вкладку SQL:

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

И копируем туда следующий код:

UPDATE wp_options SET option_value = 'twentytwelve' WHERE option_name = 'template';
UPDATE wp_options SET option_value = 'twentytwelve' WHERE option_name = 'stylesheet';
UPDATE wp_options SET option_value = 'twentytwelve' WHERE option_name = 'current_theme';

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Для смены темы оформления таким способом нужно правильно указать её название. Советую использовать стандартные темы оформления в данном случае, ссылки на которые мы приводили выше.

После этого содержимое вашего сайта снова отобразится.

2. Плагины

Обычно плагин, который сбоит, делает внешний вид вашего сайта совсем не таким, как вы хотите его видеть, но доступ в консоль управления все же остается, и вы можете с легкостью отключить этот плагин.

Но бывают случаи, когда вы установили плагин, который конфликтует с другими установленными и активированными плагинами на вашем сайте, или обновили существующий плагин — и он начал сбоить, выдавая ошибку 500 на вашем сайте.

В этом случае способ отключения плагина схожий с методом отключения темы оформления посредством FTP.

Для того, чтобы отключить плагин:

  1. Зайдите на FTP вашего сайта.
  2. Зайдите в папку с установленным плагином, по умолчанию это /wp-content/plugins/
  3. Переименуйте, удалите или отредактируйте плагин. Если вы не удалили, а переименовали плагин, то при переходе в «Консоль управления → Плагины» WordPress автоматически его деактивирует.

3. Файл .htaccess

Ошибка 500 может быть вызвана проблемами с файлом .htaccess. В случае его неудачного редактирования или при некорректной работе некоторых плагинов файл .htaccess может содержать ошибки. Иногда это связано с попыткой изменить параметры, которые изменять запрещено, или попыткой настроить неустановленный модуль веб сервера.

Обычно файл .htaccess находиться в корневой папке вашего сайта (в которую вы попадаете сразу после подключения к FTP).

Так как название этого файла начинается с точки — по умолчанию он считается скрытым и не отображается FTP-клиентом.

В FTP-клиенте FileZilla следует перейти в меню «Сервер» и поставить флажок на «Принудительно отображать скрытые файлы«, а затем обновить список файлов или подключиться заново к FTP, чтобы увидеть файл.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Для смены темы оформления таким способом нужно правильно указать её название. Советую использовать стандартные темы оформления в данном случае, ссылки на которые мы приводили выше.

После этого содержимое вашего сайта снова отобразится.

2. Плагины

Обычно плагин, который сбоит, делает внешний вид вашего сайта совсем не таким, как вы хотите его видеть, но доступ в консоль управления все же остается, и вы можете с легкостью отключить этот плагин.

Но бывают случаи, когда вы установили плагин, который конфликтует с другими установленными и активированными плагинами на вашем сайте, или обновили существующий плагин — и он начал сбоить, выдавая ошибку 500 на вашем сайте.

В этом случае способ отключения плагина схожий с методом отключения темы оформления посредством FTP.

Для того, чтобы отключить плагин:

  1. Зайдите на FTP вашего сайта.
  2. Зайдите в папку с установленным плагином, по умолчанию это /wp-content/plugins/
  3. Переименуйте, удалите или отредактируйте плагин. Если вы не удалили, а переименовали плагин, то при переходе в «Консоль управления → Плагины» WordPress автоматически его деактивирует.

3. Файл .htaccess

Ошибка 500 может быть вызвана проблемами с файлом .htaccess. В случае его неудачного редактирования или при некорректной работе некоторых плагинов файл .htaccess может содержать ошибки. Иногда это связано с попыткой изменить параметры, которые изменять запрещено, или попыткой настроить неустановленный модуль веб сервера.

Обычно файл .htaccess находиться в корневой папке вашего сайта (в которую вы попадаете сразу после подключения к FTP).

Так как название этого файла начинается с точки — по умолчанию он считается скрытым и не отображается FTP-клиентом.

В FTP-клиенте FileZilla следует перейти в меню «Сервер» и поставить флажок на «Принудительно отображать скрытые файлы«, а затем обновить список файлов или подключиться заново к FTP, чтобы увидеть файл.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Теперь данный файл стал доступен, и вы можете открыть его в любом текстовом редакторе, например в блокноте, но для удобства работы советую использовать Notepad++.

Когда вы откроете файл, вы увидите текст, который по сути является правилами и указаниями для работы веб сервера. Вы можете просмотреть внесенные вами изменения и устранить ошибки, либо данный файл можно просто удалить, а в последствии сгенерировать новый средствами WordPress. Для этого нужно перейти в панель администратора сайта, Параметры → Постоянные ссылки, выбрать нужный вариант и нажать «Сохранить«.

Ошибка 500 Internal Server Error: разбираемся и устраняем проблему

Обратите внимание, если настройки, которые находятся в .htaccess, внесены плагином, который вам нужно использовать — тогда стоит внимательно прочесть инструкцию по его установке и настройке, также вы можете обратиться к разработчику плагина за консультацией.

Смотрите также:

inet.ws - Powerful VPS around the World!
Алексей Шевченко

Изучает сайтостроение с 2008 года. Практикующий вебмастер, специализирующий на создание сайтов на WordPress. Задать вопрос Алексею можно на https://profiles.wordpress.org/wpthemeus/

Инструкция для пользователей и владельцев ресурса.

Что такое ошибка 500 и как её исправить

Что означает код ошибки 500

Ошибка 500 (Internal Server Error) — это внутренняя проблема сервера. Она возникает, когда браузер или другой клиент отправляет серверу запрос, а тот не может его обработать.

Одна из самых частых причин появления ошибки 500 — это неправильный синтаксис файла .htaccess. Кроме того, она порой возникает после загрузки на сервер неверных CGI‑скриптов или установки некорректных прав доступа.

То есть в ошибке 500, как и в других ответах с кодом, который начинается на цифру 5, виноваты разработчики или администраторы сервера. Но никак не пользователи.

Что делать пользователю при ошибке 500

Если вы увидели ошибку 500 на чужом сайте, есть два варианта.

Подождать

Если у вас нет доступа к этому ресурсу, вы не сможете отредактировать файл, изменить настройки или выполнить другие подобные действия. Поэтому стоит подождать, пока администратор исправит ошибку, и зайти на сайт позднее.

Сообщить администратору ресурса

Не все владельцы сайтов круглосуточно мониторят логи и читают сообщения об ошибках. Вполне возможно, что администратор просто не в курсе, что сайт перестал работать.

В таком случае вы можете помочь. Попробуйте найти контактную информацию и связаться с владельцем ресурса, чтобы сообщить о проблеме. Если на самом сайте из‑за ошибки 500 вы никаких полезных данных не видите, найдите сохранённую копию страницы в поисковиках или в архиве интернета.

Что при ошибке 500 пользователю делать бессмысленно

Пример ошибки 500. Сервис GetStatusCode создан специально для тестирования различных ответов

Так как проблема связана с сервером, то нет резона что‑то предпринимать со стороны клиента. Поэтому не пытайтесь:

  • перезагружать компьютер;
  • менять браузер;
  • переустанавливать ПО;
  • перезагружать роутер.

Что делать администратору при ошибке 500

Конечно, многое зависит от специфики вашего ресурса: на каком движке он работает, на каком хостинге располагается и что вы меняли на сайте в последнее время. Но всё же универсальные рекомендации в большинстве случаев помогают избавиться от ошибки 500.

Советуем последовательно попробовать каждый из вариантов, если он, конечно, актуален для вашего ресурса.

Проверить синтаксис файла .htaccess

Если вы используете веб‑сервер Apache, то в корне вашего сайта или во вложенных папках, скорее всего, есть файл .htaccess. В нём хранятся серверные настройки.

В большинстве случаев ресурс будет работать и без этого файла. Попробуйте переименовать .htaccess, например, в .htaccess_, а затем снова зайти на главную страницу сайта.

Если ошибка 500 исчезла, значит, дело именно в .htaccess. Проверьте синтаксис этого файла — возможно, при редактировании вы где‑то вставили лишний символ или допустили опечатку. Если есть предыдущая версия настроек, верните её и посмотрите, появляется ли ошибка 500.

Иногда помогает закомментировать строку Options в .htaccess — вставить # в самом её начале. Если это не сработало, закомментируйте и другие строки, а затем последовательно убирайте #, чтобы найти проблемное место в файле.

Если вы отредактировали .htaccess, проверьте, сохранились ли изменения. Бывает, что хостер выставляет на этот файл права, которые запрещают редактирование. В таком случае попробуйте скачать .htaccess к себе на компьютер, изменить файл в любом текстовом редакторе и залить на сайт вместо старой версии.

Посмотреть лог ошибок

Если вы недавно проводили какие‑то работы на сайте, возможно, это привело к ошибке 500. Откройте логи и посмотрите, нет ли там сообщений о проблемах. Если есть, проанализируйте их и попробуйте отменить последние корректировки.

Хостеры обычно указывают, где по умолчанию хранятся логи и как получить к ним доступ из панели управления. Эти сведения можно найти в разделах помощи или FAQ (frequently asked questions — часто задаваемые вопросы) на сайте хостинга.

Выставить права для CGI‑скриптов

Если вы используете CGI‑скрипты, то сами файлы с ними и папки, в которых они лежат, должны иметь право доступа 0755 (drwxr‑xr‑x). Такая комбинация разрешает запись в них только для владельца. Остальные пользователи могут лишь читать эти файлы и запускать их.

Если у вас установлены другие права доступа, это может приводить к ошибке 500.

Проверить содержимое CGI‑скриптов

Корректные CGI‑скрипты должны иметь окончания строк в формате Unix (n), а не в формате Windows (rn). Чтобы сохранить правильный вариант, загружать код на большинство хостингов нужно по FTP в режиме ASCII. Если вы не знаете, какие настройки использовали, перезалейте скрипты и посмотрите, не исчезла ли ошибка 500.

Также CGI‑программы могут формировать неправильные HTTP‑заголовки ответа. В этом случае вы, скорее всего, увидите ошибки в логах.

Удалить или отключить недавно установленные плагины или компоненты

Бывает, что отдельные компоненты сайта или плагины конфликтуют между собой. Это также приводит к ошибке 500 и другим проблемам на стороне сервера.

Если вы недавно устанавливали модули либо обновляли их, попробуйте отключить эти элементы в панели администрирования. Возможно, после этого на сайте возникнут другие ошибки. Но если ответ 500 больше не приходит, дело как раз в конфликте компонентов или плагинов.

Оптимизировать скрипты

Если скрипты выполняются долго или для них не хватает ресурсов, попробуйте пересмотреть их содержимое. Возможно, код нуждается в оптимизации, чтобы он потреблял меньше процессорного времени и оперативной памяти.

Особенно часто скриптам не хватает ресурсов, если вы используете виртуальный хостинг. Там количество памяти жёстко ограничено, чтобы у всех аккаунтов в рамках одного физического сервера были равные возможности.

Попробуйте разбить скрипт на блоки и оценить эффективность работы каждого из них. Если в коде много внешних вызовов или потребление памяти стабильно растёт вплоть до установленного лимита, с этим точно стоит что‑то сделать.

Увеличить объём оперативной памяти сервера

Бывает, что даже после оптимизации скриптов они всё равно потребляют слишком много памяти. В этом случае придётся перейти на более дорогой пакет обслуживания на хостинге или, если предоставляется такая возможность, увеличить непосредственно выделение памяти. И не переплачивать за другие ресурсы, которые вам не нужны.

Попросить помощи

Обратитесь в службу поддержки хостера или на профильный форум. Поищите похожие ошибки на Stack Overflow — если там нет подходящей темы, создайте новую. Опишите ситуацию как можно более детально и будьте готовы пробовать различные варианты, которые вам предложат в комментариях.

Правда, порой ответов приходится ждать долго. Поэтому имеет смысл зайти в похожие темы и попросить помощи там.

Наконец, можно зарегистрироваться на сайтах для фрилансеров в качестве заказчика. Специалисты помогут вам решить проблему, пусть и не бесплатно.

Читайте также 💿⚙️💻

  • Что делать, если тормозит браузер
  • Как исправить ошибку CPU Fan Error при загрузке компьютера
  • Что делать, если DNS-сервер не отвечает
  • Что означает 404 Not Found и другие ошибки веб-страниц
  • Что делать, если пропал интернет на Windows

Понравилась статья? Поделить с друзьями:
  • Ошибка 500 при запросе get
  • Ошибка 500 при запросе ajax
  • Ошибка 500 при загрузке сайта
  • Ошибка 500 при выполнении скрипта
  • Ошибка 500 при ftp соединении