[英]Apache 406 Not Acceptable when specifying Accept: header
我试图自己找到一种解决方案,但其他406个问题的解决方案却无济于事。
我已经在Mac上启用了PHP和Apache Web服务器。 我发现如果我通过设置了Accept:标头的请求(POST或GET),那么它将失败并显示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”,则请求将执行而不会出错。
我尝试添加此test / tester.var(与test / tester.php相同的目录):
URI: tester
Content-type: application/json
URI: tester.php
我的意图是通过执行tester.php来指示Apache使用“ Accept:application / json”来处理请求。 但这并没有帮助我(我还在httpd.conf文件中的“ IfModule mime_module”下添加了“ AddHandler type-map .var”,然后重新启动了服务器)。
'mod_security'似乎没有配置,但是无论如何我还是将以下.htaccess添加到了test /目录:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
这些是我在网上找不到的解决方案,对我没有用。
有任何想法吗?
我终于想出了解决办法! 正如我所怀疑的那样,* mod_security *与我的问题无关。
这是我对/etc/apache2/httpd.conf所做的更改:
在“ IfModule mime_module”部分中添加了以下两行:
AddType application/x-httpd-php .php MultiviewsMatch Handlers Filters
在我的PHP源目录中,我在与tester.php相同的目录中创建了一个tester.var ,其内容为:
Content-type: application/json
URI: tester.php
现在一切都很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.