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:
- разрешенные карты типов, раскомментировав строку " AddHandler type-map var в разделе "IfModule mime_module".
-
добавлены следующие две строки в раздел "IfModule mime_module":
AddType application/x-httpd-php .php MultiviewsMatch Handlers Filters
в моем источнике PHP каталог, я создал тестер.ВАР в папке тестер.в PHP содержание:
Content-type: application/json
URI: tester.php
теперь все хорошо.