2013-03-21 2 views
5

나는이 솔루션을 찾으려고 노력했지만 다른 406 가지 솔루션으로는 해결되지 않았습니다.Apache 406 Accept : header를 지정할 때 사용할 수 없음

Mac에서 PHP 웹 서버와 Apache 웹 서버를 사용할 수 있도록 설정했습니다. : 나는 "응용 프로그램/JSON을 수락"을 제외하면,

$ 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> 

그러나 : 헤더 세트, 다음은 406 오류와 함께 실패 : 내가 수락로 요청을 전달 (POST 또는 GET) 경우 것으로 나타났습니다 요청은 오류없이 실행됩니다.

I 시도 (시험/tester.php와 같은 디렉토리에)이 테스트/tester.var 추가 :

내 의도는 아파치와 요청을 처리하기 위해 직접했다
URI: tester 

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

"수락 : 응용 프로그램/JSON을" tester.php를 실행하여. 하지만 그것은 도움이되지 못했습니다. (또한 httpd.conf 파일에서 'IfModule mime_module'아래에 'AddHandler type-map .var'을 추가하고 서버를 다시 시작했습니다.)

'에 mod_security는'구성 할 수 표시되지 않습니다,하지만 난 어쨌든 내 테스트/디렉토리에 다음의 .htaccess를 추가 : 내가 일한 없음으로 그물에서 발견

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

이있는 솔루션을 나를.

아이디어가 있으십니까?

답변

1

나는 마침내 픽스를 찾아 냈습니다! 내가 생각하기에, * mod_security *는 내 문제와 관련이 없다.

  1. 사용 유형은 "IfModule의 mime_module"의 "AddHandler에 형지도 VAR"라인 의 주석에 의해 매핑 : 여기

    내가 /etc/apache2/httpd.conf 에 대한 변경 사항입니다 섹션.
  2. 추가는 두 "IfModule의 mime_module"섹션에 선 다음 내 PHP 소스 디렉토리에서

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

을, 나는 tester.php과 같은 디렉토리에 tester.var을 생성 내용에는 :

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

지금은 모두 좋다.

+0

무엇이 문제 자체를 일으 킵니까? Mac에서 Chrome을 통해 ajax POST 요청을 할 때도 동일한 문제가 있지만 나머지 OS 및 웹 브라우저와도 잘 작동합니다. –

관련 문제