2012-03-29 3 views
1

Ich habe versucht, PHP-Code innerhalb eines Dokuments mit einer HTM- oder HTML-Erweiterung auszuführen. Ich habe es endlich arbeiten mit:htaccess Änderungen arbeiten auf einigen Seiten, aber nicht auf anderen?

AddType application/x-httpd-php .php .html .htm

nun innerhalb von HTM-Dokumente ausführen zu können, php, funktioniert nur, wenn ich direkt zu die HTM-Seite wie: http://www.foobar.com/layout.htm

es aber nicht, wenn ich auf die Seite index.php gehen funktioniert die verwendet die Seite Layout.htm ...

Dies ist ein Beispiel dafür, was die Indexseite URL sieht so aus: http://www.foobar.com/index.php

Was mache ich falsch?

+0

Wie verwenden Sie * die Seite genau? – jeroen

+0

Die Layoutseite enthält Tags wie {HEADER} und andere ähnliche Namen in geschweiften Klammern. Ich bin nicht wirklich vertraut mit der Verwendung ... abgesehen davon ist es eine normale HTML/CSS-Seite. Ich weiß, dass, wenn ich html zur layout.htm Datei hinzufüge (ohne irgendeinen PHP zu benutzen), es auf der Seite index.php gut erscheint. Wenn ich jedoch die Layoutseite mit Hilfe von PHP ändere, erscheinen die Änderungen nur dann, wenn ich direkt zur Seite layout.htm gehe, aber nie auf der Seite index.php erscheint. – CSoverIT

+0

Sie müssen den Abschnitt des PHP-Codes posten, der * die * HTM-Datei verwendet. – jeroen

Antwort

1

Angenommen, Sie verwenden so etwas wie include in Ihrer PHP-Datei, um die HTML-Datei einzuschließen, haben Ihre .htaccess Regeln keine Auswirkungen auf die enthaltene Datei.

Die .htaccess Regeln werden nur auf Anfragen ausgeführt, die an den Apache Web-Server gestellt werden und wenn Sie eine lokale Datei in PHP einschließen, fordern Sie einfach eine Datei im lokalen Dateisystem an; Du verlangst es nicht über Apache.

Bearbeiten: Basierend auf dem Kommentar unterhalb Ihrer Frage, ist es auch möglich, dass Sie etwas wie readfile verwenden, um den Inhalt der HTM-Datei zu erhalten. Wenn das der Fall ist, müssen Sie das in include ändern, damit der PHP ausgeführt wird.

+0

Ich verwende die PHP-Include-Funktion. – CSoverIT

1

Ihre .htaccess-Regel gilt nicht für enthaltene Dateien in PHP.

Haben Sie diese Seite überprüfen: http://php.net/manual/en/function.include.php

Wenn eine Datei enthalten ist, fällt aus PHP-Modus und in HTML-Modus zu Beginn der Zieldatei und nimmt wieder am Ende Parsen. Aus diesem Grund muss jeder Code innerhalb der Zieldatei, der als PHP-Code ausgeführt werden soll, in gültigen PHP-Start- und End-Tags enthalten sein.