Apache HTTP Server
Alle folgenden Beispiel verwenden mod_rewrite, ein offizielles
Modul, das zusammen mit Apache kommt. Um es zu verwenden, muss
mod_rewrite entweder wärend der Zeit des Kompilierens enthalten
sein, oder als Dynamic Shared Objekt (DSO) aktiviert werden.
Konsultieren Sie bitte die
» Apache Dokumentation für weitere
Informationen über Ihre Version.
Rewriting innerhalb eines VirtualHost
Hier ist eine sehr grundsätzliche Definition eines virtuellen Hosts. Diese
Regeln leiten alle Anfragen auf index.php weiter, ausser
wenn eine passende Datei im document_root gefunden wurde.
<VirtualHost my.domain.com:80>
ServerName my.domain.com
DocumentRoot /path/to/server/root/my.domain.com/public
RewriteEngine off
<Location />
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
</Location>
</VirtualHost>
Es ist der Schrägstrich ("/") zu beachten der index.php
vorangestellt ist; die Regeln für .htaccess unterscheiden
sich in diesem Punkt.
Rewriting innerhalb einer .htaccess Datei
Anbei ist eine einfache .htaccess Datei welche
mod_rewrite verwendet. Das ist ähnlich der Konfiguration
für virtuelle Hosts, ausser dass sie nur die Rewrite Regeln spezifiziert, und der
führende Schrägstrich bei index.php nicht angegeben wird.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Es gibt viele Wege um mod_rewrite zu konfigurieren; wenn
man weitere Informationen haben will, dann sollte man in Jayson Minards
» Blueprint for PHP Applications:
Bootstrapping sehen.
Microsoft Internet Information Server
Ab Version 7.0 wird IIS jetzt mit einer standardmäßigen Rewrite
Engine ausgeliefert. Man kann die folgende Konfiguration verwenden, um die
entsprechenden Rewrite Regeln zu erstellen.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^.*$" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}"
matchType="IsFile" pattern=""
ignoreCase="false" />
<add input="{REQUEST_FILENAME}"
matchType="IsDirectory"
pattern=""
ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^.*$" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>