htaccess php to html

Manchmal möchtest Du einfach, dass auf dem Webserver befindliche php Dateien eine html Endung bekommen. Dazu gibt es zwei Möglichkeiten die .htaccess anzupassen.

Ich persönlich bevorzuge die erste Variante. Bei einigen Providern wird das SetHandler per .htaccess nämlich nicht zugelassen. Mod_Rewrite ist hingegen gängiger. Edit: Igor Puschner meint, die zweite Variante sei sogar noch eine Ressourcenverschwendung!

  1. Erste Möglichkeit: Alle html Aufrufe auf php Dateien weiterleiten

    In diesem Fall bleiben die Dateien auf dem Server unangetastet und haben immer noch die Endung .php – werden aber durch die Endung .html aufgerufen. Vorsicht: Es entsteht ein potenzieller Duplicate Content, da der selbe Inhalt per http://tld/datei.html und http://tld/datei.php erreichbar ist! Hier muss zusätzlich unbedingt ein Canonical Tag eingebaut werden!

    RewriteEngine on
    ## Existiert ein html file wirklich? (Das führt dazu, dass wenn 
    ## ein File wirklich existiert, einfach das File zurückgegeben wird.)
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.+) - [PT,L] 
    ## Ende Existiert ein html file wirklich?
    RewriteRule ^(.*)\.html$ $1\.php 

    Diese Variante funktioniert nur, wenn mod_rewrite beim Provider aktiviert ist
    Danke an Igor Puschner für seine Anmerkung

  2. Zweite Möglichkeit: php in html Dateien ausführen

    In diesem Fall kann man dann alle PHP Skripte auch in einer .html Datei ausführen. In diesem Fall entsteht natürlich kein potenzieller Duplicate Content!
    von Apache empfohlen
    Diese Version hört auf .php, .php2 … .php6, html

    <FilesMatch "\.(php[2-6]?|html)$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    Diese Variante „führt nur dazu dass der Server immer erstmal den Parser anschmeisst um das zurückgegebene File zu checken. Das ist sinnlose Ressourcenverschwendung.“Igor Puschner

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.