Ich versuche gerade Content-Negotiation von Apache mit PHP zu verbinden
und komm' nicht weiter.
Ist es möglich, mit PHP auf die von Apache generierten Header zu reagieren
und sie zu verändern?
es gibt "apache_response_headers()" das ist aber erst gefüllt, wenn die
Header gesendet wurden; zu diesem Zeitpunkt kann ich sie aber nicht mehr
ändern.
Ich versuche etwa dies zu tun (fiktives, nicht funktionierendes Beispiel):
$apache_headers = $apache_response_headers(); // hier müssen die
HTTP-Header bereits gesendet sein
if ($apache_headers["Content-Type"] == "text/html")
{
header("Content-Location: $foo"); // Error: Headers already sent
};
Ein bisschen mehr Hintergrund:
Teil des Problems ist wahrscheinlich, das ich alle Dateien durch dasselbe
PHP-Skript leite. Es ist in der .htaccess so eingebunden:
| ForceType application/x-httpd-php
| php_value auto_prepend_file /example/include.php
(.htaccess)
include.php initialisiert mit 'ob_start("callback");' einen Output-Buffer,
dessen Callback dann abhängig von der verhandelten Resource
unterschiedliche Dinge tun soll. Unter anderem HTTP-Header setzen.
[Programmversionen: Apache 1.3.27, PHP 4.3.4]
Habt ihr Tipps?
Viele Grüße,
Levin
[xpost und f'up beachten]