Ich habe eine Reihe von grob kodierten PHP-Dateien geerbt, deren Ausgabe ich programmatisch ändern muss.PHP include() betroffen von mod_rewrite
Um dies zu erreichen, entschied ich mich, sie durch eine andere PHP-Datei, rewriter.php, die sich wie etwa laufen aussieht:
<?php
if(!preg_match('/^([a-zA-Z0-9\-_]*)$/', $_GET['page']))
die('Incorrect page supplied.');
ob_start('changeOutput');
include($_GET['page'].'.php');
ob_end_flush();
function changeOutput ($buffer) {
...
}
?>
ich mod_rewrite, um sie zu zwingen, durch diese Datei auszuführen:
RewriteEngine On
RewriteRule ^([^\.]*)\.php$ rewriter.php?page=$1
Es wird jedoch eine Fehlermeldung angezeigt, die mich glauben lässt, dass die include() -Anweisung von der obigen RewriteRule betroffen ist, dh es versucht, rewriter.php über rewriter.php und so weiter zu starten.
Ich nehme an, es gibt viele Möglichkeiten, dieses Problem anzugehen, aber ich bin speziell auf der Suche nach einer Möglichkeit zu entkommen die include() -Anweisung von mod_rewrite betroffen sein. Ich habe die Moduldokumentation durchgesehen, aber ich konnte nichts Relevantes finden.
Natürlich sind Alternativen zu diesem Ansatz auch willkommen.
Vielen Dank für Ihre Zeit und Ihr Denken.
Mit freundlichen Grüßen,
Daniel
Sehr unwahrscheinlich. Und was ist wieder in der Fehlermeldung? – Gleb
Sind Sie sicher, dass Ihr Skript aus dem erwarteten Verzeichnis ausgeführt wird? Das könnte so aussehen, als wäre es umgeleitet worden. – Dave
Führen Sie diese Umschreibungsregeln aus dem Kontext einer Datei mit der Datei conf (.htaccess) oder der Datei apache conf (httpd.) Aus.Konf) Datei? –