Apache 406 Не допускается при указании заголовка Accept:

Я попытался найти решение для этого сам, но решения других 406 проблем мне не помогли.

Я включил PHP и веб-сервер Apache на своем Mac. Я обнаружил, что если я передаю запрос (POST или GET) с набором заголовков Accept, то он не с ошибкой 406:

$ curl -X GET -H "Accept: application/json" http://localhost/test/tester <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>406 Not Acceptable</title> </head><body> <h1>Not Acceptable</h1> <p>An appropriate representation of the requested resource /test/tester could not be found on this server.</p> Available variants: <ul> <li><a href="tester.php">tester.php</a> , type application/x-httpd-php</li> </ul> </body></html> 

Однако, если я исключаю «Accept: application / json», запрос выполняется без ошибок.

Я попытался добавить этот тест / tester.var (в том же каталоге, что и test / tester.php):

 URI: tester Content-type: application/json URI: tester.php 

Мое намерение заключалось в том, чтобы заставить Apache обрабатывать запрос с помощью «Accept: application / json», выполнив tester.php. Но это мне не помогло (я также добавил «AddHandler type-map .var» в разделе «IfModule mime_module» внутри моего файла httpd.conf и перезапустил сервер).

«mod_security», похоже, не настроен, но я добавил следующий .htaccess в мой каталог test /:

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

Это решения, которые я нашел в сети, ни для кого не работали.

Есть идеи?

Related of "Apache 406 Не допускается при указании заголовка Accept:"

Я, наконец, понял, что исправить! Как я и предполагал, * mod_security * не имеет ничего общего с моей проблемой.

Вот изменения, которые я сделал для /etc/apache2/httpd.conf :

  1. Включенный тип отображает, раскомментируя строку «AddHandler type-map var» в разделе «IfModule mime_module».
  2. Добавлены следующие две строки в раздел «IfModule mime_module»:

     AddType application/x-httpd-php .php MultiviewsMatch Handlers Filters 

В моем исходном каталоге PHP я создал tester.var в том же каталоге, что и tester.php, с содержимым:

  Content-type: application/json URI: tester.php 

Теперь все хорошо.