Ошибка 406 apache

So I received this error today, I’ve narrowed it down to this issue:

My site is my musician page here. It allows people to come in and see photos of me, news, my music and events I’m playing at.

Everything was going swell, I manually input data into MySQL to have it auto-feed to the home page. Now I’m adding the control panel so I can add, edit, delete things in the database from the web.

Everything works fine except for the ability to add/edit events. I’ve narrowed it down to the fact that I can’t input 2 URLs or I get this error. I NEED to input 2 URLs (one to view the event page, one to buy tickets) but I can’t input more than 1 at a time, is there anything I can do to correct or work around this error whether in apache or my code?

<?php
    $specevlink = "http://facebooklink.com";
    $specgigtick = "http://ticketplacelink.com";
?>
     <form method="post" action="index.php?page=editgigs">
         <table>
                <tr>
                     <td>
                          Event Page (Link):
                     </td>
                     <td style="text-align: left;">
                          <input type="url" name="giglink" value="<?php echo $specevlink; ?>" />
                     </td>
                </tr>
                <tr>
                     <td>
                          Event Tickets (Link):
                     </td>
                     <td style="text-align: left;">
                          <input type="url" name="gigtick" value="<?php echo $specgigtick; ?>" />
                     </td>
                </tr>
         </table><br />
         <input type="submit" name="editgig" value="submit" /><br />
         <br />
     </form>

EDIT:

I’m adding the full line of code so you can see exactly what I’m using,

Here’s a pic of step 1
Here’s a pic of step 2

This is included into an index.php file:

<?php
if(isset($_GET["page"])){
$page = $_GET["page"];
} else {
$page = "";
}

if($page === "editgigs"){
 include ('inc/logincheck.php');
?>
 <div class="label">
      EDIT GIGS
 </div><br />
 <div style="margin: 0 auto; text-align: center; width: 100%">
      <form method="post" action="index.php?page=editgigs">
<?php
      if(!isset($_POST['selectgigs'])){
           if(!isset($_POST['updgigs'])){
?>
                Select one of the options below:<br />
                <br />
                <select name="selgigs" style="max-width: 26%;">
<?php
                     while($gigsall_data = mysqli_fetch_array($gigsall_query)){
                          $gigid = stripslashes($gigsall_data['idgigs']);
                          $gigdate = stripslashes($gigsall_data['date']);
                          $gigname = stripslashes($gigsall_data['name']);
                          $gigdate = date('F j, Y', strtotime($gigdate));
?>
                          <option value="<?php echo $gigid; ?>">
                               <?php echo $gigdate; ?>: <?php echo $gigname; ?>
                          </option>
<?php
                     }
?>
                </select><br /><br />
                <input type="submit" name="selectgigs" value="Select" /><br />
                <br />
<?php
           }
      }
      if(isset($_POST['selectgigs'])){
           $gigtoed = trim($_POST['selgigs']);
           $specgig_query = mysqli_query($con, "SELECT * FROM `gigs` WHERE `idgigs` = '$gigtoed'") or die(mysqli_error($con));
           $specgig_data = mysqli_fetch_array($specgig_query);
           $specdate = stripslashes($specgig_data['date']);
           $specname = stripslashes($specgig_data['name']);
           $specevlink = stripslashes($specgig_data['evlink']);
           $specgigtick = stripslashes($specgig_data['ticklink']);
           $specnos = stripslashes($specgig_data['noshow']);
           if($specnos === '0'){
                $noshow = '';
           } else {
                $noshow = 'checked';
           }
?>
           <table style="border-spacing: 5px; padding: 10px;">
                <tr>
                     <td>
                          Past Event?:
                     </td>
                     <td style="text-align: left;">
                          <input type="checkbox" name="nos" <?php echo $noshow; ?> /> Past Event
                     </td>
                </tr>
                <tr>
                     <td>
                          Date:
                     </td>
                     <td style="text-align: left;">
                          <input type="date" name="gigdate" value="<?php echo $specdate; ?>" required />
                     </td>
                </tr>
                <tr>
                     <td>
                          Name:
                     </td>
                     <td style="text-align: left;">
                          <input type="text" name="gigname" value="<?php echo $specname; ?>" required />
                     </td>
                </tr>
                <tr>
                     <td>
                          Event Page (Link):
                     </td>
                     <td style="text-align: left; width: 350px;">
                          <input type="url" name="giglink" style="width: 100%;" value="<?php echo $specevlink; ?>" />
                     </td>
                </tr>
                <tr>
                     <td>
                          Event Tickets (Link):
                     </td>
                     <td style="text-align: left; width: 350px;">
                          <input type="url" name="gigtick" style="width: 100%;" value="<?php echo $specgigtick; ?>" />
                     </td>
                </tr>
           </table><br />
           <input type="hidden" name="gigid" value="<?php echo $gigtoed; ?>" />
           <input type="submit" name="updgigs" value="Update" /><br />
           <br />
<?php
      }
      if(isset($_POST['updgigs'])){
           $newid = trim($_POST['gigid']);
           $newdate = mysqli_real_escape_string($con, trim($_POST['gigdate']));
           $newname = mysqli_real_escape_string($con, trim($_POST['gigname']));
           $newlink = mysqli_real_escape_string($con, trim($_POST['giglink']));
           $newtick = mysqli_real_escape_string($con, trim($_POST['gigtick']));
           if(isset($_POST['nos'])){
                $newnoshow = mysqli_real_escape_string($con, '1');
           } else {
                $newnoshow = mysqli_real_escape_string($con, '0');
           }
           echo $newid.' '.$newdate.' '.$newname.' '.$newlink.' '.$newtick.' '.$newnoshow.'<br />';
           /*mysqli_query($con, "UPDATE `gigs` SET `date` = '$newdate', `name` = '$newname', `evlink` = '$newlink', `ticklink` = '$newtick', `noshow` = '$newnoshow' WHERE `idgigs` = '$newid' LIMIT 1") or die(mysqli_error($con));*/ //commented for testing
?>
           <div style="text-align: center;">
                <span class="confirm">
                     Successfully updated click <a href="index.php?page=events">here</a> to view it!
                </span>
           </div>
<?php
      }
?>
      </form>
 </div>
<?php
}

FYI- the logincheck.php is does nothing but check if the user is logged in, if not it sends them back to the home page.

Browse by Categoy

  • 404 Error
  • 406 Error
  • Affiliate Marketing
  • Amazon EC2
  • Apache
  • AWS
  • Cache
  • Cloud
  • Cloudflare
  • Conversion Rate Optmization
  • CRO
  • Cron Jobs
  • CyberPanel
  • Database
  • Dedicated Server
  • DigitalOcean
  • DKIM
  • DMARC
  • DNS
  • Elementor
  • Email
  • Facebook
  • Git
  • Google Cloud
  • IP Address
  • LAMP
  • Linux
  • LiteSpeed Cache
  • Mailgun
  • Malware
  • Marketing
  • Mautic
  • Multisite
  • MySQL
  • News
  • NGINX
  • OpenLiteSpeed
  • Oxygen Builder
  • Performance Test
  • Permalinks
  • PHP
  • PHPMyAdmin
  • Postfix
  • Processes
  • Query Monitor
  • rDNS
  • Redis
  • SCP
  • Security
  • Server
  • Shared Hosting
  • SMTP
  • SPF
  • SSH
  • Telnet
  • Uptime Monitoring
  • Varnish
  • Video Marketing
  • VPN
  • WooCommerce
  • Wordfence
  • WordPress
  • WordPress Builder

Posted on June 3rd, 2022

by Editorial Team

Errors on the client and server side can happen (such as 406 error), and these are commonly referred to as HTTP responses or status codes. This HTTP response code is known as the «406 error».

When visiting a site, you might encounter a 406 error. If you have a website, it might be even worse. Internet users may find it irritating, but website or application owners might find it absolutely terrifying. Any HTTP response code, including the 406 error, can make an otherwise professional website seem unprofessional and confusing.

What is 406 error?

«406 Not Acceptable» HTTP error messages aren’t as common as «404 Not Found» errors (which usually indicate that URLs don’t exist) or even the 301 or 500 HTTP problems. As a result, you shouldn’t expect to see much of this one.

The status code 406 Not Acceptable is an HTTP response code. When user agents (web browsers) request information from the server, they provide an Accept header that notifies the server which data types the browser may accept. If the server is unable to transmit data in any of the codecs specified in the Accept header, a 406 Not Acceptable error will be returned.

Although the 406 error is uncommon, it is possible that it will cause an issue for your website.

The message usually goes like this:

Not Acceptable

An appropriate representation of the requested resource could not be found on this server.

Additional messages or server information are mentioned at the end, and it sometimes indicates the «requested resource» where the problem is.

Is 406 error a server-side or a client-side error?

A client-side error is the 406 Not Acceptable status code. It belongs to the 4xx (The 4xx status code class is for situations where the client appears to have made a mistake) category of HTTP response status codes, which are client error responses.

HTTP status codes in the 4xx category include:

  • 400 Bad Request
  • 401 Unauthorized Error
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 410 Gone
  • 429 Too Many Requests 
  • 415 Unsupported Media Type

4xx errors imply that the intended page was not located and that the request was incomplete. The problem is something that is occurring on the client’s end.

They differ from the 5xx category of status codes, which are considered server-side faults. These errors are not the fault of the client, but they do indicate a problem on the server-side

A 406 Not Acceptable error can sometimes be traced back to the server. It can, for example, result in a 406 code response and other significant traffic routing issues if it is misconfigured and handling requests incorrectly.

What are the causes of 406 error?

Your browser (such as Safari, Firefox, Brave, Chrome, or Internet Explorer) requests site files and content whenever you open a web page. By communicating with the server, the browser notifies the server what the user wants to see, and hopefully, the server replies with the correct information.

When the browser sends its first request, it informs the server what file types it can accept. Essentially it’s an Accept-Header request, which tells the server to deliver the files in the proper formats in order to produce the entire website or web application, beginning with the header.

A server’s response may not respect a browser’s or a client’s rule when it is not in the appropriate format. This error indicates that the server isn’t delivering the required data, as indicated by a 406 error.

In header requests, there can be some «bad formats» and «rule violations». Here are some examples:

  • Accept-ranges: Some servers use security measures or only allow a specified file size limit in the response. You’ll get a 406 error if the answer tries to send too many bytes outside the allowed range.
  • Accept-encoding: This section of the header is used to compress files so they can be sent from the server to the browser fast. A 406 error code is generated when certain encoding methods and formats aren’t accepted.
  • Accept-language: Accept-language is a nickname for Accept-charset that refers to its emphasis on worldwide languages.
  • MIME type violation: The browser may occasionally ask the server for a certain MIME type. JPEG photos, particular video formats, and basic text are examples of MIME types. You’ll get a 406 error if the server can’t offer a specified MIME type, such as JPEG images.
  • Accept-charset: This is a character set that describes how site file tables convert code (such as CSS and HTML) into readable characters. It’s difficult to cover all of the characters, languages, and symbols that exist around the globe. The ISO-8859 table is the standard, although there are also various complementing tables. To keep up with language and character additions, new character tables are released on a regular basis.

The «406 Not Acceptable» error indicates that the client provided a legitimate request to the web server, but that the request included a special criterion that the server must comply with. The initial request included a particular need in the form of an HTTP Accept- header.

That leaves us just a few possibilities or causes:

  • The desired MIME type or suitable formats, such as JPEG or mp4 video, were not provided by the server.
  • The server did not provide the appropriate language (Accept-language). 
  • In accordance with the Accept-encoding request, the server utilized the incorrect compression method or format.
  • The server returned an excessive number of bytes that did not match the Accept-ranges request.
  • The server failed to deliver comprehensible characters, resulting in an issue with the browser’s Accept-charset request.

The 406 error can be caused by other things, but they aren’t as common. The first two are more prevalent than the others, so it’s likely you should start by looking into the possibility of a MIME type violation or an Accept-language issue.

Seeing how something within your site files might cause problems is key information for website owners regarding these format issues and violations. Human error, such as entering in the wrong code, removing vital code, or misconfiguring the server, frequently results in such scenarios. When specific security settings or regulations prevent content delivery from the server, the 406 error arises.

What are some preventative measures for 406 error?

The issue with the 406 error is that it might appear in a variety of circumstances.

That’s not ideal, but it’s nothing that a little troubleshooting can’t fix. When the 406 error occurs on your website or app, it is much more problematic.

If it’s your website, you’ll want to make sure it doesn’t happen again. Plugins, themes, and human mistakes can all play a role, so here are some additional recommendations.

  • Keep plugins, themes, and extensions to a minimum. Only install the necessary and reputable elements.
  • Unless you know what you are doing and absolutely must, you should never edit the core files of WordPress.
  • It is recommended to perform a database cleaner and site optimizer regularly. We recommend that this process is completed every month and that a cleaner plugin is used that will run automatically in the background.
  • Debugging your server and web application should become a habit.
  • Backup your website or application regularly. This will prevent code conflicts or errors from causing too much anxiety since you can easily restore a previous version of the site.
  • Even if you already run automated backups, run a manual backup of your site before updating WordPress and any plugins. It’s also a good idea to take a backup before editing any files or adding new code to your site.

How to fix 406 error?

Go into your WordPress site’s file manager. Enter the publi_html and right click on .htaccess to edit

406 error

Enter the following code at the end of the file and click save. This will resolve the 406 error, please note that for below solution to work you either need to have your site on LiteSpeed Enterprise or Apache, even on NGINX this below solution will not work.

    <IfModule mod_security.c>
    SecFilterEngineOff
    SecFilterScanPOSTOff
    </IfModule>

Conclusion

When browsing a website, you may see the 406 error. Or, in the worst-case scenario, on your website. While it may annoy the typical internet user, it can be downright frightening for the owner of a website or service. Any HTTP response code, even the 406 error, might lose sales and users in addition to seeming unprofessional and unclear.

There are various methods for resolving the 406 error. You should be able to clear up the mistake as long as you know what you’re seeing and where to seek for the solution.

While this isn’t one of the most common WordPress issues, it is one that you may encounter if your configuration is incorrect.

You might be interested in

Иногда возникают ошибки на стороне сервера и на стороне клиента, обычно их называют HTTP-ответами или кодами состояния. Одним из таких HTTP-ответов является ошибка «406 error» или «406 Not Acceptable».

Эту ошибку можно увидеть при посещении сайта. Или, что еще хуже, на собственном сайте. Это может раздражать обычного пользователя Интернета, но для владельца веб-сайта или приложения это на грани ужаса. Любой код ответа HTTP, включая ошибку 406, может не только выглядеть непрофессионально и сбивать с толку, но и приводит к потере продаж и пользователей.

inet.ws - Powerful VPS around the World!

Ошибка 406 на сайте WordPress

В этой статье будут объяснены основные сведения об ошибке «406 Not Acceptable», ее причины, способы исправления и шаги по профилактике ее появления в будущем.

Что такое ошибка 406

Хорошая новость заключается в том, что сообщение об ошибке HTTP «406 Not Acceptable» встречается не так часто, как ошибка сервера 404 (которая обычно указывает на несуществующую веб-страницу) или даже ошибки 301 или 500 HTTP.

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

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

An appropriate representation of the requested resource /wp-admin/post.php could not be found on this server.

Сообщение обычно гласит (в переводе на русский):
Недопустимо

Соответствующее представление запрошенного ресурса /wp-admin/post.php не может быть найдено на этом сервере.

Иногда «запрошенный ресурс», в котором заключается проблема, определяется и выводится с другими сообщениями или информацией о сервере:

Скриншот ошибки
Внешний вид и текст сообщения об ошибке 406 зависит от веб-сайта, хоста и браузера, которые использовались для доступа к веб-сайту. Ошибка 406 может показать, где произошли ошибки. В других случаях отображается простая ошибка «406 Not Acceptable» без какой-либо информации о проблеме.
А теперь давайте представим, что браузеры говорят на простом английском, а не в этих загадочных сообщениях. В этом случае браузер скажет что-то вроде этого:

Здравствуйте, я браузер. Я попытался показать эту веб-страницу, но возникла одна из двух проблем:

  1. Сервер веб-сайта отправил мне файл неправильного формата, поэтому я не могу его принять.
  2. Сервер веб-сайта нарушает некоторые настройки или требования безопасности.

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

Если бы только браузеры были такими дружелюбными!

По сути, существует недопонимание между сервером и браузером или компьютером, используемым для представления веб-приложения. Браузер либо не может прочитать, что поступает, либо проверить данные, потому что они не соответствуют некоторым требованиям.

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

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

Наиболее распространенные ошибки SSL-соединения и методы их исправления

Что вызывает ошибку 406

Каждый раз, когда вы открываете веб-страницу, ваш браузер (например, Safari, Firefox, Brave, Chrome или Internet Explorer) отправляет запрос на сервер страницы для получения содержимого сайта и файлов базы данных. Браузер действует как посредник между вами и сервером – он сообщает серверу, что пользователь хочет видеть, и, надеюсь, верная информация возвращается.

Во время этого первого запроса браузер сообщает серверу все форматы файлов, которые он может принимать. Это называется Accept- header запросом, который побуждает сервер доставить файлы в надлежащих форматах для создания всего веб-сайта или веб-приложения, начиная с заголовка.

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

Вот несколько примеров «плохих форматов» и «нарушений правил», которые могут возникать при запросах заголовков:

  • Accept-ranges: на некоторых серверах установлены меры безопасности или разрешен только определенный диапазон размера файла в ответе. Если ответ пытается отправить слишком много байтов за пределы допустимого диапазона, вы увидите ошибку 406.
  • Accept-encoding: это область заголовка, предназначенная для сжатия файлов, поэтому они быстро перемещаются с сервера в браузер. Некоторые методы и форматы сжатия не принимаются, что приводит к отображению кода ошибки 406.
  • Accept-charset: относится к набору символов или к тому, как таблицы файлов сайта принимают код (например, CSS и HTML) и превращают его в понятные символы. В мире так много персонажей, языков и символов, что сложно охватить их все. Стандартная таблица называется ISO-8859, но есть и другие дополнительные таблицы. Время от времени выпускаются новые таблицы символов.
  • Accept-language: обычно это другое имя для Accept-charset, которое ссылается на его ориентацию на международные языки.
  • Нарушение типа MIME: иногда браузер запрашивает у сервера определенный тип MIME. Типы MIME – это элементы содержимого, такие как изображения JPEG, определенные видеоформаты или простой текст. Если сервер не может предоставить запрошенный тип MIME, например изображения JPEG, вы увидите ошибку 406.

Основной способ исправить ошибку 406 – проверить исходный код на наличие проблем в заголовках Accept-, Request- и Response- .

Самый простой способ просмотреть заголовки «Accept» и «Response» – открыть веб-страницу в браузере, щелкнуть правой кнопкой мыши и выбрать « Inspect» (Проверить).

Перейдите в Сеть> Заголовки, чтобы отобразить все запросы с этой веб-страницы.

Заголовки

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

Или можете обратиться к своему веб-разработчику. Однако проверка исходного кода намного проще, если есть инструменты для отладки и очистки базы данных, которые обсудим позже в этой статье.
Ошибка «406 Not Acceptable» сообщает, что клиент отправил действительный запрос на сервер, но запрос включал уникальное требование для сервера. Это специальное требование в первоначальном запросе было в форме HTTP Accept— заголовка.

Это оставляет нам несколько потенциальных причин:

  1. Сервер не предоставил запрошенный тип MIME или правильные форматы, такие как видео в формате JPEG или mp4.
  2. Сервер не вернулся с правильным языком (Accept-language). Например, он мог отправить ответ на немецком языке, когда браузер запросил французский.
  3. Сервер использовал неправильный метод или формат сжатия в ответ на запрос Accept-encoding.
  4. Сервер отправил обратно слишком много байтов, которые не совпадают с запросом Accept-ranges.
  5. Серверу не удалось предоставить понятные символы, что привело бы к проблеме с запросом Accept-charset из браузера.

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

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

Как исправить ошибку 406

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

Убедитесь, что создана полная резервная копия всего, от базы данных и мультимедийных элементов до файлов сайта.
Теперь, когда у нас есть более глубокое понимание того, почему возникает ошибка 406, пришло время поговорить о лучших методах устранения ошибки и предотвращения ее повторения.
Эти тактики включают причины на стороне клиента (когда пользователь совершает ошибку или машина работает некорректно), причины на стороне сервера и причины на основе платформы, такие как неисправные плагины.

Убедитесь, что URL-адрес правильный

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

Ошибка 404 гораздо более вероятна, чем ошибка 406 в этой ситуации. Но если URL-адрес веб-сайта действителен, то можно увидеть и ошибку «406 Not Acceptable». Тем не менее, есть что-то странное в том, как браузер переводит запрос. Например, добавление «JSON» или «PHP» в конец URL-адресов может быть неверно истолковано как запрос для этих конкретных форматов, даже если клиенту они не нужны.

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

Сообщение 406 технически считается кодом ошибки на стороне клиента (даже если это часто проблема платформы или сервера), поэтому это первый шаг, позволяющий определить, что на стороне клиента что-то не так.

Сбросьте свои устройства и сети

Другая проблема на стороне клиента иногда связана с теми же заголовками Accept, отправленными с компьютера пользователя на платформу, которая не может удовлетворить запрос. Многие из этих платформ включают игровые или медиа-ориентированные системы, такие как Hulu, или музыкальные торговые площадки, такие как Spotify.

Проще говоря, можно войти на такую ​платформу, как Hulu, попробовать посмотреть свое любимое телешоу и получить сообщение об ошибке 406. В этом примере проблема почти всегда на стороне клиента. Обычно это компьютер, сеть или другое устройство, которое вы использовали для запуска платформы.

Хотя это может произойти с любой платформой, некоторые платформы, которые обычно сообщают об ошибках 406:

  • Hulu
  • Гугл игры
  • Игры Square Enix
  • Netflix
  • Xbox
  • Windows (обычно для игр)

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

Медиа и игровые платформы имеют множество ограничений, и эти ограничения зависят от вашего местоположения или конфигурации сети.

Хотя трудно помочь вам устранить неполадки для каждой конкретной платформы, рассмотрите следующие рекомендации и проверьте, устранена ли ошибка:

  • Войдите в Интернет, чтобы проверить статус сервера платформы. Это может быть просто проблема с сервером компании.
  • Перезагрузите компьютер, игровую систему, потоковое устройство или другие машины.
  • Отсоедините все устройства от кабелей, подождите несколько минут, прежде чем снова их все подключить, и проверьте, исчезла ли ошибка.
  • Убедитесь, что в приложении установлена ​самая последняя версия. Также проверьте, доступны ли обновления прошивки для какой-либо из ваших машин.
  • Сбросьте настройки домашней или офисной сети (Wi-Fi или подключение к Интернету через маршрутизатор).
  • Если проблема не исчезнет, ​​подумайте о переключении с беспроводной сети на проводное сетевое соединение.
  • Хотя это не всегда возможно, рассмотрите возможность дублирования ошибки на совершенно другом компьютере. Убедитесь, что устройство находится в той же сети. Если вы не можете воспроизвести ошибку, проверьте свою сеть и исходный компьютер.

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

Откат последних изменений в CMS

Пришло время изучить систему, используемую для ваших веб-сайтов или приложений. Может случится так, что система управления контентом, такая как WordPress, является прямой причиной ошибки «406 Not Acceptable» из-за сложностей внутри файлов сайта.

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

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

Чтобы выяснить, не CMS ли все портит, начните с отката всех недавних обновлений, которые произошли с файлами ядра.  WordPress регулярно рассылает обновления своей системы. Большинство этих обновлений происходит автоматически, но более старые версии по-прежнему требуют нажатия кнопки для обновления.

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

Для всех систем, не относящихся к WordPress, выполните поиск по запросу «название платформы + как перейти на более раннюю версию».

Если вы используете WordPress, можете легко понизить версию своего веб-сайта WordPress, эффективно откатив его до одной из предыдущих версий:

Откат последних изменений в CMS

Удалите и переустановите плагины, темы и расширения

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

Проверенный метод определения проблемного плагина или темы — один за другим деактивировать плагины и темы. После отключения каждого проверьте, исчезла ли ошибка 406. Если да, то вы нашли проблему. Если ошибка не исчезнет, ​​переустановите плагин или тему и продолжите удаление следующего.

Деактивация плагинов

Важно!

Начните с плагинов, если ничего не найдете – перейдите к теме.

Анализируйте состояние БД на предмет изменений и конфликтов

К сожалению, удаленный «проблемный» плагин все еще может повлиять на базу данных WordPress, поскольку плагины для правильной работы получают полный доступ к БД. Поэтому все равно следует проверять статус базы данных, даже если кажется, что удаление плагина привело к исчезновению ошибки 406. В противном случае можно столкнуться с дополнительными проблемами в будущем.

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

Чтобы просканировать и исправить БД, рассмотрите следующие решения:

  1. Установите сканер и очиститель базы данных, который удаляет бесполезные и проблемные таблицы и активы. Некоторые параметры включены в плагины WP Optimize и Advanced Database Cleaner. Большая часть этого процесса включает в себя удаление старых или потерянных элементов, таких как мусорные записи, исправления и метаданные. Это надежный первый шаг к очистке БД и потенциальному устранению ошибки 406.
  2. Просканируйте базу данных и найдите записи и таблицы, которые могут быть изменены проблемным плагином или выглядят неуместными или ненужными.
  3. Если у вас есть представление о том, что не так с базой данных, перейдите в поисковую систему и обратитесь за помощью на форумы и в другие обсуждения в Интернете. Есть большая вероятность, что кто-то другой столкнулся с той же проблемой.

Форумы

Анализируйте журналы вашего сервера

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

Первым шагом в устранении неполадок сервера является проверка журналов. Неважно, какой тип веб-приложения, CMS или системы веб-дизайна вы используете; все они имеют журналы на стороне сервера.

Журналы приложений хранят всю (или недавнюю) историю этого веб-приложения с информацией о каждом запросе к базе данных, предоставленных результатах, запрошенных страницах и многом другом. С другой стороны, журналы сервера содержат информацию о работоспособности и состоянии сервера или оборудования, используемых для запуска веб-приложения.

Отладка веб-приложения (например, WordPress)

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

Один из лучших способов запустить полное сканирование WordPress (или любого веб-приложения) – отладить файлы базы данных и веб-сайта. К счастью, отладка не означает, что вам нужно читать каждую строчку кода и самостоятельно выявлять ошибки. Для этой конкретной цели доступны программы, и многие хостинги предоставляют их на панели управления сайтами.

Предотвращение ошибки 406 в будущем

Проблема с ошибкой 406 заключается в том, что она может появляться в различных ситуациях. Можно увидеть ошибку «406 Not Acceptable HTTP» при просмотре Hulu или Netflix в качестве обычного пользователя.

Это не очень приятно, но все можно исправить с помощью небольшого устранения неполадок. Более опасно появление ошибки 406, когда она происходит на вашем веб-сайте или в приложении. В таких случаях необходимо проверить файлы сервера и сайта CMS.

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

  • Устанавливайте только необходимые и проверенные плагины, темы и расширения. Всегда сводите эти элементы к минимуму.
  • Никогда не изменяйте основные файлы WordPress, если вы в этом не уверены и не знаете, что делаете.
  • Запускайте регулярно очистители/оптимизаторы базы данных и сайта. Рекомендуем выполнять этот процесс каждый месяц, а в идеале найти чистый плагин, который автоматически запускается в фоновом режиме.
  • Возьмите за привычку отлаживать сервер и веб-приложение. Многие ресурсы имеют такую ​функциональность.
  • Установите автоматическое резервное копирование сайта или приложения. Таким образом, конфликт кода или ошибка не вызовут у вас особого стресса, поскольку можно восстановить предыдущую версию веб-сайта и начать с нее.
  • Выполните ручное резервное копирование сайта, прежде чем планировать обновление WordPress и любых плагинов, даже если уже запущено автоматическое резервное копирование (лучше перестраховаться, чем сожалеть). Также разумно выполнить резервное копирование перед редактированием любых файлов или добавлением нового кода на сайт.

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

Источник: kinsta.com

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

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

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

Поэтому я получил эту ошибку сегодня, я сузил ее до этой проблемы:

Мой сайт – моя музыкальная страница здесь . Это позволяет людям заходить и видеть фотографии меня, новости, мою музыку и события, в которых я играю.

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

Все работает отлично, за исключением возможности добавлять / редактировать события. Я сузил его до того, что я не могу ввести 2 URL-адреса, или я получаю эту ошибку. Мне НЕОБХОДИМО вводить 2 URL-адреса (один для просмотра страницы события, один для покупки билетов), но я не могу вводить более 1 за раз, есть ли что-нибудь, что я могу сделать, чтобы исправить или обойти эту ошибку, будь то в apache или моем код?

<?php $specevlink = "http://facebooklink.com"; $specgigtick = "http://ticketplacelink.com"; ?> <form method="post" action="index.php?page=editgigs"> <table> <tr> <td> Event Page (Link): </td> <td style="text-align: left;"> <input type="url" name="giglink" value="<?php echo $specevlink; ?>" /> </td> </tr> <tr> <td> Event Tickets (Link): </td> <td style="text-align: left;"> <input type="url" name="gigtick" value="<?php echo $specgigtick; ?>" /> </td> </tr> </table><br /> <input type="submit" name="editgig" value="submit" /><br /> <br /> </form> 

РЕДАКТИРОВАТЬ:

Я добавляю полную строку кода, чтобы вы могли точно видеть, что я использую,

Вот рис. 1-го шага. Вот фото из шага 2

Это входит в файл index.php:

 <?php if(isset($_GET["page"])){ $page = $_GET["page"]; } else { $page = ""; } if($page === "editgigs"){ include ('inc/logincheck.php'); ?> <div class="label"> EDIT GIGS </div><br /> <div style="margin: 0 auto; text-align: center; width: 100%"> <form method="post" action="index.php?page=editgigs"> <?php if(!isset($_POST['selectgigs'])){ if(!isset($_POST['updgigs'])){ ?> Select one of the options below:<br /> <br /> <select name="selgigs" style="max-width: 26%;"> <?php while($gigsall_data = mysqli_fetch_array($gigsall_query)){ $gigid = stripslashes($gigsall_data['idgigs']); $gigdate = stripslashes($gigsall_data['date']); $gigname = stripslashes($gigsall_data['name']); $gigdate = date('F j, Y', strtotime($gigdate)); ?> <option value="<?php echo $gigid; ?>"> <?php echo $gigdate; ?>: <?php echo $gigname; ?> </option> <?php } ?> </select><br /><br /> <input type="submit" name="selectgigs" value="Select" /><br /> <br /> <?php } } if(isset($_POST['selectgigs'])){ $gigtoed = trim($_POST['selgigs']); $specgig_query = mysqli_query($con, "SELECT * FROM `gigs` WHERE `idgigs` = '$gigtoed'") or die(mysqli_error($con)); $specgig_data = mysqli_fetch_array($specgig_query); $specdate = stripslashes($specgig_data['date']); $specname = stripslashes($specgig_data['name']); $specevlink = stripslashes($specgig_data['evlink']); $specgigtick = stripslashes($specgig_data['ticklink']); $specnos = stripslashes($specgig_data['noshow']); if($specnos === '0'){ $noshow = ''; } else { $noshow = 'checked'; } ?> <table style="border-spacing: 5px; padding: 10px;"> <tr> <td> Past Event?: </td> <td style="text-align: left;"> <input type="checkbox" name="nos" <?php echo $noshow; ?> /> Past Event </td> </tr> <tr> <td> Date: </td> <td style="text-align: left;"> <input type="date" name="gigdate" value="<?php echo $specdate; ?>" required /> </td> </tr> <tr> <td> Name: </td> <td style="text-align: left;"> <input type="text" name="gigname" value="<?php echo $specname; ?>" required /> </td> </tr> <tr> <td> Event Page (Link): </td> <td style="text-align: left; width: 350px;"> <input type="url" name="giglink" style="width: 100%;" value="<?php echo $specevlink; ?>" /> </td> </tr> <tr> <td> Event Tickets (Link): </td> <td style="text-align: left; width: 350px;"> <input type="url" name="gigtick" style="width: 100%;" value="<?php echo $specgigtick; ?>" /> </td> </tr> </table><br /> <input type="hidden" name="gigid" value="<?php echo $gigtoed; ?>" /> <input type="submit" name="updgigs" value="Update" /><br /> <br /> <?php } if(isset($_POST['updgigs'])){ $newid = trim($_POST['gigid']); $newdate = mysqli_real_escape_string($con, trim($_POST['gigdate'])); $newname = mysqli_real_escape_string($con, trim($_POST['gigname'])); $newlink = mysqli_real_escape_string($con, trim($_POST['giglink'])); $newtick = mysqli_real_escape_string($con, trim($_POST['gigtick'])); if(isset($_POST['nos'])){ $newnoshow = mysqli_real_escape_string($con, '1'); } else { $newnoshow = mysqli_real_escape_string($con, '0'); } echo $newid.' '.$newdate.' '.$newname.' '.$newlink.' '.$newtick.' '.$newnoshow.'<br />'; /*mysqli_query($con, "UPDATE `gigs` SET `date` = '$newdate', `name` = '$newname', `evlink` = '$newlink', `ticklink` = '$newtick', `noshow` = '$newnoshow' WHERE `idgigs` = '$newid' LIMIT 1") or die(mysqli_error($con));*/ //commented for testing ?> <div style="text-align: center;"> <span class="confirm"> Successfully updated click <a href="index.php?page=events">here</a> to view it! </span> </div> <?php } ?> </form> </div> <?php } 

FYI- logincheck.php ничего не делает, кроме как проверяет, зарегистрирован ли пользователь, если он не отправляет их на домашнюю страницу.

Ваш сайт генерирует ошибку, если какой-либо элемент ввода пользователя начинается с http:// или https:// .

Когда я пытаюсь со ссылкой, начинающейся с http:// я получил 406 Not Acceptable:

http://onkore.us/?blah=http://www.google.com

Это нормально, когда я пробую это:

http://onkore.us/?blah=www.google.com

Вы упомянули, что у вас проблемы, если это несколько ссылок, но когда я пытаюсь использовать две ссылки, как показано ниже, это нормально:

http://onkore.us/?blah1=www.google.com&blah2=www.google.com

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

Я не уверен, помогает ли это обходное решение, но, учитывая, что http:// или https:// создает проблему, я думаю, что нужно удалить http:// и https:// из пользовательского ввода. Сначала вы можете попробовать изменить <input type="url" на <input type="text" чтобы формат URL не был применен. Затем вы можете использовать Javascript для удаления вхождений http:// и https:// из пользовательского ввода в форме перед отправкой на сервер. Кроме того, вы можете удалить их из данных перед заполнением значений формы.

Надеюсь это поможет .

Regex: как удалить «http: //» из URL-адреса в JavaScript

Эта ошибка означает, что, например, вы запрашиваете сервер для книг (и вы понимаете только испанский язык). На сервере есть только английская и немецкая книги.
Поэтому у сервера есть ваш ответ, но он не даст его вам, потому что он знает, что вы ничего не сделаете полезным, или вы сделаете с ним что-то плохое! (например, не читать книги и бросать их на головы людей, например).

406 Not Acceptable «- это необычный код состояния – наиболее распространенными являются 200, 404, 500, 301. Вы видите только 406, когда что-то не так с сервером, как правило, что-то глупо, но трудно диагностировать.

Также:

Эта общая ошибка означает, что запрошенный вами запрос был обнаружен как потенциальная попытка взлома сервера […]
https://billing.stablehost.com/knowledgebase/178/What-does-406-Not-Acceptable-mean.html


Наиболее распространенное решение этой ошибки связано с mod_security.

1. Mod_security

ModSecurity может контролировать HTTP-трафик в реальном времени, чтобы обнаруживать атаки […], он работает как средство обнаружения вторжений в сети. ModSecurity также может действовать немедленно, чтобы предотвратить атаки от веб-приложений.

Эта ошибка 406 может быть от mod_security как ответ от возможной атаки через POST, передавая некоторый url вместо обычного и обычного текста.

Наиболее распространенным решением является отключить проверку POST и фильтрацию mod_security в htaccess:

 <IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule> 

Кроме того, в терминале выполните:

 sudo a2dismod security2_module sudo service apache2 restart 

Чтобы отключить ModSecurity.

Если это не работает, отредактируйте файл

/etc/apache2/mod-security/modsecurity_crs_10_config.conf

И добавьте # в начале строки, которая имеет что-то вроде этого:

SecDefaultAction “phase:2,log,deny,status:403,t:lowercase,t:replaceNulls,t:compressWhitespace”

Наконец, перезапустите apache

sudo service apache2 restart

У меня была эта проблема некоторое время и только время от времени, поэтому было трудно определить.

Однако после некоторого тестирования я обнаружил ошибку в моем случае. Это может быть не у вас, но если у кого-то есть ошибка 406 Not Acceptable , стоит сделать снимок.

В моем случае эта ошибка возникала, когда в опубликованных данных содержалась «shell:», что, как я предполагаю, интерпретируется неправильно и возникает ошибка. Решение для меня состояло в том, чтобы заменить эту строку перед отправкой.

Regardless of what may be causing them, server errors are without doubt frustrating both for users visiting your website and for you as the website owner. While some HTTP errors are more common than others, it’s always good to be prepared for any error that your web server may throw at you. Luckily, HTTP Error 406 Not Acceptable is not as common as 404, 500 or 301 HTTP codes are, but you may encounter it nonetheless, and when you do, the cause is usually one of the following two: a content type negotiation problem or misunderstanding or a mod_security rule setting problem, the latter being the most common of the two.

What is HTTP Error 406 Not Acceptable – How to Fix It?

This article sheds light on why a server returns a HTTP error 406 Not Acceptable and what can you do to fix the underlying problem.

HTTP Error 406 Caused by an Accept Header Problem

When a client (web browser) wants to load a webpage, first it needs to obtain the IP address of the server. To this end, it does a DNS lookup, which translates the domain.com to an IP address. The DNS might return multiple IP addresses; in that case, it will pick the first one and establish a TCP Socket connection to port 80 or 443 to that IP address. Upon a successful connection, it will write the HTTP request data (e.g. GET /  HTTP/1.1, Host: domain.com, Accept: text/html, User-Agent: Mozilla …).

error 406 not acceptable example

The server, after it receives a request, depending on the Accept header, it might return a 406 status code indicating that it cannot send the data in any of the formats mentioned in the client’s Accept header. This rarely happens in real life because most web browsers will accept anything signaled by */* in the Accept header of the request. This is a last resort effort, the clients usually signal what content type they want to receive, and they define a priority list, */* us usually with the lowest priority (q=0.5). For example, the client sends the request because there is an img tag in the html, it will signal it to the server that it’s expecting an image in the first place. Accept headers can have various types (accept-encoding, accept-charset, accept-ranges, accept-language, etc.), specifying the characteristics of the data they accept. For example, a web browser may be able to process only HTML or GIF files, so if the web server would not be able to return data in any of these formats “understood” by the client, it will display a 406 Not Acceptable error code.

The reverse can also happen: if a web server doesn’t know the request extension, it may search for another application installed on it to see if that would be able to serve the file. If there isn’t any other application that can serve the file, it will return a 406 Not Acceptable error. The server also will return a 406 when it is not sure about the MIME type of the requested file. This can be quite useful as it might prevent leaking of sensitive information commonly kept in exotic file extensions like .ini, .kdb, .pass, etc.

How to Fix It?

Given that a 406 status code can be a content type negotiation mismatch issue, you need to implement certain changes so that the server has a MIME type associated with the request extension.

If you are running an IIS based web server, you need to make sure that the IIS recognises your extensions. You can add new extension to IIS simply by editing the MIME types. You can add for example *.less  and set its MIME type to text/css. This is the most straightforward solution to a 406 Not Acceptable HTTP error returned by the server. If you are running Apache as your webserver, you can add MIME types in the .htaccess file or your VirtualHost configuration. An example for the .less file would be “AddType text/css .less ”.

Alternatively, you can make changes in the Accept header of your browser so it knows the MIME type handled by your server. Making changes to the Accept header can also help, however, it’s a less viable solution than changes made on the server side.

HTTP Error 406 Caused by a mod_security Rule Setting Problem

The other scenario in which you may be met with a 406 status code is when a mod_security rule is enabled on an Apache server. It’s a type of web application firewall (WAF) program enabled by default on the hosting accounts of some web hosting providers. For example, InMotion Hosting has mod_security enabled on all their Apache based hosting accounts to protect web applications from common attacks like XSS or SQL Injections, as these types of security holes can easily creep into web applications. The mod_security continuously scans the server and the incoming request and the outgoing response for violations of rules it has set. If an action that violates the rules set in the mod_security occurs (a violation caused by a site, page or function), the server will send a 406 Not Acceptable error.

How to Fix It?

Disabling mod_security for each of your domains individually or disabling certain rules in Mod_security will help fix the error. If your hosting account comes with cPanel, the easiest way to turn off mod_security is via the modsec Manager plugin. Alternatively, you can use command line in SSH. If you want to disable specific rules or your hosting account does not come with the option to disable/enable mod_security, you need to get in touch with your web hosts’ customer support team to do it for you.

Conclusion

Albeit an infrequent HTTP error, a 406 Not Acceptable error can make an appearance here and there, and when it does happen, it’s most probably caused by a mod_security rule setting problem rather than an Accept header problem. If you’re not comfortable dealing with this issue alone, don’t hesitate to contact the web hosting company your website is hosted at as they can easily get to the root of the problem and fix the error for you.

Published on: January 12, 2017

Понравилась статья? Поделить с друзьями:
  • Ошибка 4058 при прошивке flashtool
  • Ошибка 405 на кассе меркурий
  • Ошибка 407 как исправить
  • Ошибка 4058 npm
  • Ошибка 405 метод запроса не разрешен