Apache-Mod-Umschreibung
mod_rewrite ist ein Apache-Modul, das das Umschreiben von URLs ermöglicht, die vom Client angefordert werden, bevor die Seiten von Apache abgerufen werden.
Beispielsweise kann www.site.com/products.php?code=459 als www.site.com/products/459 oder www.site.com/products/459.html geschrieben werden.
Die zweite URL wird von mod_rewrite unter Verwendung von Umschreibregeln, die in der .htaccess-Datei angegeben sind, in die erste umgeschrieben.
Mod-Rewrite aktivieren
Um das Modul mod_rewrite zu aktivieren, verwenden Sie den Befehl a2enmod.
$ sudo a2enmod rewrite
Um dieses Modul zu deaktivieren:
$ sudo a2dismod rewrite
.htaccess aktivieren
Als nächstes bearbeiten Sie die Datei:
/etc/apache2/sites-enabled/000-default
Suchen Sie nach dem Abschnitt :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </directory>
Ersetzen Sie AllowOverride None durch AllowOverride FileInfo als :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </directory>
Jetzt Apache neu starten
$ sudo /etc/init.d/apache2 restart
Htaccess-Regeln testen
Platzieren Sie nun eine .htaccess-Datei im Ordner /var/www/, um das Umschreiben von Mods zu testen
Um zu testen, ob mod_rewrite funktioniert oder nicht, füllen Sie die .htaccess-Datei mit etwas Mülltext und öffnen Sie dann eine Datei dieses Ordners im Browser.
Sie sollten einen 500 Internal Server Error und einen .htaccess-Fehler in der Apache-Protokolldatei erhalten. Dies zeigt, dass jetzt mod_rewrite aktiviert ist.
Fügen Sie nun einige Rewrite-Regeln in die .htaccess-Datei
einRewriteEngine on RewriteRule ^([0-9]+).html$ index.php?id=$1
die zum Beispiel einen Ordner/23.html durch Ordner/index.php?id=23 ersetzen sollte.
Links und Ressourcen
Weitere Details und Anweisungen zum Einrichten von Mod-Rewrite und zum Schreiben von htaccess-Regeln finden Sie auf der offiziellen Dokumentseite. Einige der Links sind unten aufgeführt:
1. Apache 1.3 Mod neu schreiben
2. http://httpd.apache.org/docs/1.3/howto/htaccess.html
3. http://httpd.apache.org/docs/1.3/configuring.html#htaccess
4. http://httpd.apache.org/docs/2.2/howto/htaccess.html
5. http://wiki.apache.org/httpd/DistrosDefaultLayout