Jan 04 2009
Apache mod_rewrite a htaccess na Debianu
Zprovoznění mod_rewrite pro Apache2 na různých verzích debianu nebylo vždy stejné. Dřívější funkční použití a2enmod vyžadovalo (na prvních verzích Etche) předponu mod_
. V současné stable verzi (Etch/6) i v testing (Lenny) se oba přístupy sjednotili a stačí tedy už jen: a2enmod rewrite
. Musím připomenou že utilita a2enmod vytváří pouze symbolický link z /etc/apache2/mods-available
do /etc/apache2/mods-enabled
(takže se bez ní dá jednoduše obejít s využítím ln -s ...
).
Celý postup pak tedy vypadá následovně (vše je třeba dělat pod rootem nebo použít sudo).
- Povolení modulu
- Nastavení konfigurace Apache pro daný adresář a (virtuální doménu):
<Directory /var/www/projekt> Options FollowSymLinks AllowOverride All </Directory>
- A konečně, v souboru
/var/www/projekt/.htaccess
musí být hned na začátku:RewriteEngine on
# a2enmod rewrite
Pokud by jste chtěli být úplně „precizní“, tak se doporučuje ještě v souboru .htaccess zapsat konfiguraci pro přepisovaní pomocí mod_rewrite do podmíněného bloku kde se testuje, zda-li je mod_rewrite natažen. Tedy například takto:
<IfModule mod_rewrite.c> RewriteEngine On ... RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . /index.php [L] ... </IfModule>
Vyzkoušeno na: Lenny: Apache/2.2.9 a Etch: Apache/2.2.3.
Komentáře nejsou povoleny