Das Apache Modul „mod_rewrite“ ermöglicht URL Manipulation.
Mit der Rewrite-Engine des Apache-Webservers ist es möglich, URLs anhand von Regeln „umzuschreiben“.
Rewrite-Engines werden häufig genutzt, um Ressourcen mit dynamischen URLs unter Alternativadressen erreichbar zu machen.
Beispiel:
Die Ressource mit der internen, technisch bedingten Adresse
/page/index.php?title=Startseite
ist so beispielsweise auch unter folgender Adresse erreichbar
/page/Startseite.html
Um zu prüfen, ob auf einem Server bzw. seinem Webhosting Paket mod_rewrite aktiviert ist kann man folgendes Beispiel auf Basis von PHP benutzen.
1. Datei „rewrite.php“ erstellen
<?php $result = ($_GET['test']==1)?"Link ohne mod_rewrite":(($_GET['test']==2)?"OK! - Link mit Apache mod_rewrite funktioniert":"Test - Apache mod_rewrite"); ?> <head> <title>Test - Apache mod_rewrite</title> </head> <body> <h1 style="text-align:center;"><?php echo $result; ?></h1> <h3>Funktionsweise:</h3> <p> Die beiden Test Links verweisen beide auf die Seite "rewrite.php".<br/> TEST LINK 1 ist dabei ein einfacher Verweis auf diese Seite ohne mod_rewrite.<br/> TEST LINK 2 verweist auf eine HTML Datei. Dieser Link wird über die definierte Regel in der .htaccess Datei auf die Datei "rewrite.php" umgeschrieben. </p> <br/> <a href="rewrite.php?test=1">TEST LINK 1</a> (ohne mod_rewrite) <br/><br/> <a href="rewrite2.html">TEST LINK 2</a> (mit mod_rewrite) </body> </html>
2. Datei „.htaccess“ erstellen
RewriteEngine On RewriteRule ^rewrite([^/]*).html$ rewrite.php?test=$1 [L]
3. Dateien auf dem Server laden
Laden Sie alle Dateien auf den Server hoch. Am Besten wir hierfür nicht das ROOT-Verzeichnis sondern eigener Ordner (z.B. „test“) benutzt.
4. Testseite aufrufen.
Rufen Sie die Testseite auf um zu prüfen ob das mod_rewrite Module auf dem Server aktiviert ist.
Beispiel: www.testdomain.de/test/rewrite.php
Funktionsweise der Testseite:
Die beiden Test Links verweisen beide auf die Seite „rewrite.php“.
TEST LINK 1 ist dabei ein einfacher Verweis auf diese Seite ohne mod_rewrite.
TEST LINK 2 verweist auf eine HTML Datei. Dieser Link wird über die definierte Regel in der .htaccess Datei auf die Datei „rewrite.php“ umgeschrieben.
Testseite downloaden
Wer die Dateien nicht selbst erstellen will kann diese hier downloaden:
mod_rewrite_test.zip
Ich erhalte beim Ausführen von Test Link 2 folgende Fehlermeldung:“Not Found – The requested URL /Test/rewrite2.html was not found on this server.“
Kann ich daraus schließen, dass mein mod_rewrite nicht korrekt funktioniert?
Beste Grüße
Ja, davon muss ich bzw. du ausgehen.