2013-03-21 5 views
5

Ich habe versucht, eine Lösung dafür selbst zu finden, aber Lösungen zu anderen 406 Probleme haben mir nicht geholfen.Apache 406 Nicht akzeptabel beim Angeben Akzeptieren: Header

Ich habe PHP und den Apache Webserver auf meinem Mac aktiviert. Ich habe festgestellt, dass, wenn ich einen Antrag (POST oder GET) mit dem Akzeptieren passieren: Kopfsatz, dann mit einem 406 Fehler fehlschlägt:

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

Allerdings, wenn ich die „Accept: application/json“ ausschließen die Anfrage wird ohne Fehler ausgeführt.

Ich habe versucht, das Hinzufügen dieser Test/tester.var (im selben Verzeichnis wie Test/tester.php):

URI: tester 

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

Meine Absicht Apache Anforderung zu verarbeiten zu lenken war mit "Accept: application/json" durch Ausführen von tester.php. Aber es hat mir nicht geholfen (ich habe auch 'AddHandler type-map .var' unter 'IfModule mime_module' in meiner httpd.conf Datei hinzugefügt und den Server neu gestartet).

‚mod_security‘ erscheint nicht konfiguriert werden, aber ich addierte folgende .htaccess zu meinem Test/Verzeichnis sowieso:

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

Dies sind Lösungen, die ich auf dem Netz von niemandem gefunden habe gearbeitet mich.

Irgendwelche Ideen?

Antwort

1

Endlich habe ich eine Lösung gefunden! Wie ich vermutete, hatte * mod_security * nichts mit meinem Problem zu tun.

Hier sind die Änderungen, die ich /etc/apache2/httpd.conf gemacht:

  1. Aktiviert Typ von uncommenting "AddHandler type-map var" line in der "IfModule mime_module" Karten in Sektion.
  2. addiert die folgenden zwei Zeilen in dem "IfModule mime_module" Abschnitt:

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

In meinem PHP-Quellverzeichnis, habe ich ein tester.var im selben Verzeichnis wie tester.php mit dem Inhalt:

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

Es ist jetzt alles gut.

+0

Was verursacht das Problem selbst? Ich habe das gleiche Problem, wenn ich eine AJAX-POST-Anfrage über Chrome in Mac mache, aber mit den anderen Betriebssystemen und Webbrowsern gut funktioniert –

Verwandte Themen