Apache 2 - mod_rewrite unter Linux Debian Edge aktivieren

Author: Ing. Michael Fürst (m.fuerst@bluegate.at)
Web: http://www.bluegate.at
Publiziert: März 2008

Verzeichnisse statt Config File

Beim Apache2 werden die Module nicht mehr über die httpd.conf eingebunden sondern über die beiden Verzeichnisse "mods-available" und "mods-enabled" im Apache Verzeichnis (also z.B.: /etc/apache2/mods-enabled). Wie der Name schon sagt liegen im Verzeichnis "mods-available" alle verfügbaren Module und im Verzeichnis "mods-enabled" alle aktiven Module.

mods-available = Verzeichnis mit verfügbaren Modulen
mods-enabled = Verzeichnis mit aktiven Modulen

Lösungsweg 1 (manuell):

Um die Funktionsweise besser zu verstehen wende ich zuerst den etwas längeren/manuellen Lösungsweg an. Damit ein Modul funktioniert, muss es im Verzeichnis "mods-enabled" liegen. In unserem Fall muss also das Modul "rewrite.load" aus "mods-available" nach "mods-enabled" kopiert werden.

mod_rewrite unter Apache2: rewrite.load

Eleganter als das File zu kopieren ist es natürlich, einen Symlink zu setzen:

Symlink für mod_rewrite unter Linux setzen
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-available/

Nachdem das Modul verlinkt ist, muss nur noch der Apache mit /etc/init.d/apache2 restart neu gestartet werden. Danach ist mod_rewrite einsatzbereit.

Lösungsweg 2: a2enmod

Lösungsweg 1 lässt sich noch viel schneller mittels a2enmod durchführen. Ich vermute, dass ihm Hintergrund so ziemlich das selbe wie bei Lösungsweg 1 ablaufen wird:

mod_rewrite für Apache2 unter Linux steuern
# Modul aktivieren:
a2enmod rewrite
 
# Modul deaktivieren:
a2dismod rewrite
 
# Apache2 Config neu laden. 
# Reload reicht in diesem Fall aus, 
# ein Restart des Apache Servers ist nicht nötig
/etc/init.d/apache2 reload