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/.htaccessmusí 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.
Comments Off
