2013-03-21 23 views
5

Bu kendim için bir çözüm bulmaya çalıştım ancak diğer 406 sorunlarının çözümleri bana yardımcı olmadı.Apache 406 Kabul Edilirken Kabul Edilemez: header

Mac'imde PHP ve Apache web sunucusunu etkinleştirdim. : Ben "application/json kabul et" hariç tutarsanız,

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

Ancak: başlık seti, o zaman 406 hatası ile başarısız olur: Ben Kabul ile bir istek geçmesi (POST veya GET) eğer bulduk istek hatasız yürütür.

denedim (test/tester.php aynı Dir) bu test/tester.var ekleme:

Niyetim Apache ile isteği işlemek için yönlendirmek oldu
URI: tester 

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

"Kabul: application/json" tester.php dosyasını çalıştırarak. Ancak bana yardımcı olmadı ('AddHandler type-map .var' dosyasını 'httpd.conf dosyamda' IfModule mime_module 'altına ekledim ve sunucuyu yeniden başlattım).

'mod_security'nin' yapılandırılacak görünmüyor, ancak yine de benim test/dizinine aşağıdaki .htaccess ekledi: Ben için çalışmış hiçbiri tarafından net bulunan

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

Bunlar çözümler ben mi.

Herhangi bir fikrin var mı?

cevap

1

Sonunda bir çözüm buldum! Şüphelendiğim gibi, * mod_security * benim sorunumla ilgisi yoktu.

  1. Etkin türü "IfModule mime_module" nde "AddHandler type-map var" satırını uncommenting içinde eşler: Burada

    Ben /etc/apache2/httpd.conf yapılan değişikliklerdir Bölüm.
  2. Eklendi iki "IfModule mime_module" bölümüne satırları şunlardır: benim PHP kaynak dizininde

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

, ben tester.php aynı dizinde bir tester.var yarattı içeriği ile:

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

artık her şey yolunda.

+0

Problemin kendisi neye sebep olur? Mac ile Chrome üzerinden bir ajax POST isteği yaparken aynı sorunu yaşıyorum ancak diğer işletim sistemi ve web tarayıcıları ile iyi çalışıyor –

İlgili konular