PHP in HTML

kann man PHP in einer .html datei aufrufen :?: Wenn ja, dann wie?
Ich hab mal was von {} Klammern gehört.

Folgendes in eine htaccess-Datei:

AddType application/x-httpd-php .htmlDann kannst du PHP-Code wie gewohnt in <?php ... ?> anwenden. Anders geht’s meines Wissens nicht (lasse mich natürlich gerne eines besseren belehren).

Dabei sollte natürlich beachtet werden, dass durch diese Zeile jede Datei mit der Endung .html den PHP-Parser durchläuft.

Wenn es nur um die Dateiendung in der URL geht wäre es besser, dass mit mod_rewrite zu lösen. Warum brauchst du sowas überhaupt?

währe mal interessant wo du das mit den {} gehört hast :smiley:

danke für die Antwort! Ich bastle nämlich gerade ein CMS. Für die Templates darin brauch ich das eventuell.

Diese Klammern werden in vielen CMS oder Foren für die diversen Languages genutzt. Da laufen dann aber Parser drüber…

wenn du an einem CMS arbeitest ist es wirklich sinnvoll mod_rewrite zu benutzen.

das mit den {} ist template-engine-intern.
Bei smarty gibt es zum beispiel
{literal}
{/literal}
was abaer eigtl auch nichts anderes macht als das was da zwischen ist NICHT als template zu parsen, sondern z.b. als JavaScript zu lassen.

mein Problem ist, dass bei mir Mod-Rewrite nicht funktioniert. Er gibt dann immer „Internal Server Error“ aus. Woran kann das liegen? :?

Falscher Rewrite Code oder auf deinem Server ist mod_rewrite nicht aktiviert / installiert.

N43

kann mir einer nochmal son Rewrite Code posten?

Hallo,

der Code leitet z.B. alle *.html Seiten auf die *.php Seite weiter.

[code]RewriteEngine on
RewriteBase /

RewriteRule ^(.*).html$ $1.php[/code]

N43

geht nicht. habs auch als .htacces gespeichert.:neutral:

nochmal zu eurem {}…

also es ist wesentlich sinvoller, besonders als anfänger wo man javascript noch direkt in seine dateien schreibt, {- und -} oder andere begrenzungen für ein solches template system zu verwenden.

Ps: Mod Rewrite Aktivieren bei XAMPP

die Datei httpd.conf im ordner apache/conf öffnen und die zeile

#LoadModule rewrite_module modules/mod_rewrite.so

in

LoadModule rewrite_module modules/mod_rewrite.so

ändern,

diese zeile

AllowOverride None

in

AllowOverride All

ändern und dann apache neu starten ^^

weiß nu net ob ich was vergessen habe aber sollte gehen :stuck_out_tongue:

unter linux gehts einfacher

sudo a2enmod rewrite

dann

sudo /etc/init.d/apache2 force-reload