Tutorial: mod_rewrite auf Ubuntu-Rechner mit Apache2
Wer einen frischen Ubuntu-Rechner mit LAMP versorgen will, braucht oft auch mod_rewrite und htaccess, um, so wie ich, zum Beispiel die Urls schöner darstellen zu können. Da ich heute vor demselben Problem, wie vor vier Jahren stand (neuer Rechner, der mit mod_rewrite versorgt werden soll), will ich hier eine Anleitung schreiben.
Zuerst: mod_rewrite aktivieren
sudo a2enmod rewrite
Dann: Nötiges Verzeichnis anlegen:
sudo mkdir -p /var/run/apache2
sudo chown -R www-data /var/run/apache2
Nun: Die Apache2-Config bearbeiten:
sudo gedit /etc/apache2/apache2.conf
Dort:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Das AllowOverride auf „All“ setzen:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Anschließend: Neu laden:
sudo /etc/init.d/apache2 force-reload
Zu beachten:
Anders als auf Debian-Servern, wird auf Ubuntu-Rechnern das aktuelle Verzeichnis anders darstellt:
# AUF UBUNTU-RECHNER:
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([^/]*)$ ./index.php?site=$1 [L]
</IfModule>
# AUF DEBIAN VSERVER:
# Options -Indexes
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteRule ^([^/]*)$ /index.php?site=$1 [L]
# </IfModule>
(Auf Ubuntu: „./index.php“, auf Debian-Server: „/index.php“)