Apache 406 неприемлемо при указании Accept: header

Я попытался найти решение для этого сам, но решения других проблем 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", запрос выполняется без ошибок.

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

URI: tester

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

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

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

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

эти решения, которые я нашел на сеть никто не работал на меня.

какие идеи?

1 ответов


Я, наконец, понял, исправить! Как я и подозревал, * 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 каталог, я создал тестер.ВАР в папке тестер.в PHP содержание:

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

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