dedlfix: Wie mache ich ein Link à la xyz.xyz/home

Beitrag lesen

echo $begrüßung;

Wenn ich jetzt z.B. www.xyz.com/home auf www.xyz.com/home.php umleiten will, wie muss ich den Code korrekt umsetzen?

Es ist sinnvoll, Rewrite-Bedingungen einzufügen, die das Umschreiben von real existierenden Dateien oder Verzeichnissen nicht durchführen. Ansonsten könnte es zu Endlosschleifen kommen. Nach dem Umschreib-Prozess führt mod_rewrite nämlich intern einen zweiten Request durch, der ebenfalls wieder das Regelset durchläuft.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Besonders wichtig ist das, wenn du nach Mustern suchst.

Der Einsatz von RewriteBase mit dem aktuellen Verzeichnis empfiehlt sich auch. Begründung kann ich leider keine liefern, aber meine Erfahrung sagt mir, dass es beim Fehlen zu Problemen kommen kann.

RewriteRule index.html$ index.php

Das schreibt alle Requests um, die auf index.html enden. Für dein Ausgangsbeispiel wird gern sowas in der Art verwendet:

RewriteRule (.*) index.php?ziel=$1

Es reicht aber auch schon

RewriteRule .* index.php

wenn man im PHP-Script $_SERVER['REQUEST_URI'] auswertet, um die eigentlich aufgerufene URL zu ermitteln.

Wenn du dich für den internen Ablauf eines Rewrite-Prozesses interessierst, seien dir die Apache-Kapitel zum Modul mod_rewrite und der URL Rewriting Guide empfohlen. Wenn du einen Apache laufen hast, kannst du dir das RewriteLog einschalten, das RewriteLogLevel einstellen und dich von der großen Menge an Zeilen pro Rewritevorgang erschlagen lassen :-)

echo "$verabschiedung $name";