2013-03-21 11 views
5

Ho cercato di trovare una soluzione per questo ma le soluzioni ad altri 406 problemi non mi hanno aiutato.Apache 406 Non accettabile quando si specifica Accept: header

Ho abilitato PHP e il server Web Apache sul mio Mac. Ho scoperto che se mi passa una richiesta (POST o GET) con la Accept: set di intestazione, poi fallisce con un errore 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> 

Tuttavia, se escludo il "Accept: application/json" la la richiesta viene eseguita senza errori.

ho provato ad aggiungere questo test/tester.var (nella stessa directory come test/tester.php):

URI: tester 

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

La mia intenzione era quella di indirizzare Apache per gestire richiesta con "Accept: application/json" eseguendo tester.php. Ma non mi ha aiutato (ho anche aggiunto "AddHandler type-map .var" sotto "IfModule mime_module" nel mio file httpd.conf e riavviato il server).

'mod_security' non sembra essere configurato, ma ho aggiunto il seguente .htaccess al mio test/directory in ogni modo:

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

Si tratta di soluzioni che ho trovato in rete da nessuno hanno lavorato per me.

Qualche idea?

risposta

1

Finalmente ho trovato una soluzione! Come sospettavo, * mod_security * non aveva nulla a che fare con il mio problema.

Qui ci sono i cambiamenti che ho fatto a /etc/apache2/httpd.conf:

  1. tipo Enabled mappe in decommentando "AddHandler tipo-map var" linea nel "IfModule mime_module" sezione.
  2. aggiunti i seguenti due linee alla sezione "IfModule mime_module":

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

nella mia directory sorgente PHP, ho creato un tester.var nella stessa directory tester.php con il contenuto:

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

va tutto bene ora.

+0

cosa provoca il problema stesso? Sto riscontrando lo stesso problema quando faccio una richiesta POST ajax tramite Chrome in mac, ma sto lavorando bene con il resto del sistema operativo e dei browser web –

Problemi correlati