Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 指定Accept:header时Apache 406不可接受_Php_Apache - Fatal编程技术网

Php 指定Accept:header时Apache 406不可接受

Php 指定Accept:header时Apache 406不可接受,php,apache,Php,Apache,我自己也曾试图找到解决这个问题的办法,但其他406个问题的办法对我没有帮助 我在Mac上启用了PHP和Apache web服务器。我发现,如果我传递了一个带有Accept:header集的请求(POST或GET),那么它将失败,并出现406错误: $ curl -X GET -H "Accept: application/json" http://localhost/test/tester <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&

我自己也曾试图找到解决这个问题的办法,但其他406个问题的办法对我没有帮助

我在Mac上启用了PHP和Apache web服务器。我发现,如果我传递了一个带有Accept:header集的请求(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>
我的意图是通过执行tester.php指示Apache使用“Accept:application/json”处理请求。但这对我没有帮助(我还在httpd.conf文件的“IfModule mime_module”下添加了“AddHandler type map.var”,并重新启动了服务器)

“mod_security”似乎未配置,但我已将以下.htaccess添加到我的测试/目录中:

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

分离过滤器发动机关闭
secfilters可以关闭
这些都是我在网上找到的解决方案,没有一个对我有用


有什么想法吗?

我终于想出了解决办法!正如我所怀疑的那样,*国防安全*与我的问题无关

下面是我对/etc/apache2/httpd.conf所做的更改:

  • 通过取消注释“AddHandler类型映射变量”行,在中启用了类型映射 在“IfModule mime_module”部分
  • 在“IfModule mime_module”部分添加了以下两行:

  • 在我的PHP源目录中,我在tester.PHP的同一目录中创建了一个tester.var,其内容如下:

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

    现在一切都好了。

    是什么导致了问题本身?在mac中通过Chrome发出ajax POST请求时,我也遇到了同样的问题,但在其他操作系统和web浏览器中工作正常
    AddType application/x-httpd-php .php
    MultiviewsMatch Handlers Filters
    
        Content-type: application/json
        URI: tester.php