Apache Mod Rewrite
mod_rewrite je modul apache, který umožňuje přepisování adres URL požadovaných klientem předtím, než jsou stránky načteny apache.
Například www.site.com/products.php?code=459 lze napsat jako www.site.com/products/459 nebo www.site.com/products/459.html.
Druhá adresa URL je přepsána do první pomocí mod_rewrite pomocí pravidel přepisu specifikovaných v souboru .htaccess.
Povolit přepis modu
Pro aktivaci modulu mod_rewrite použijte příkaz a2enmod.
$ sudo a2enmod rewrite
Chcete-li tento modul zakázat:
$ sudo a2dismod rewrite
Povolit .htaccess
Dále upravte soubor:
/etc/apache2/sites-enabled/000-default
Hledejte sekci :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </directory>
Nahraďte AllowOverride None za AllowOverride FileInfo jako:
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </directory>
Nyní restartujte apache
$ sudo /etc/init.d/apache2 restart
Testujte pravidla Htaccess
Nyní umístěte soubor .htaccess do složky řekněme /var/www/ a otestujte přepsání modu
Chcete-li otestovat, zda mod_rewrite funguje nebo ne, naplňte soubor .htaccess nějakým odpadkovým textem a poté otevřete nějaký soubor této složky v prohlížeči.
V souboru protokolu Apache by se měla zobrazit chyba 500 Internal Server Error a chyba .htaccess. To ukazuje, že nyní je mod_rewrite povoleno.
Nyní vložte některá pravidla pro přepis do souboru .htaccess
RewriteEngine on RewriteRule ^([0-9]+).html$ index.php?id=$1
který by měl nahradit folder/23.html například folder/index.php?id=23.
Odkazy a zdroje
Další podrobnosti a pokyny k nastavení přepisu modu a psaní pravidel htaccess najdete na oficiální stránce dokumentu. Některé z odkazů jsou uvedeny níže:
1. Přepsání modu Apache 1.3
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