Riscrittura mod Apache
mod_rewrite è un modulo apache che consente la riscrittura degli URL richiesti dal client prima che le pagine vengano recuperate da apache.
Ad esempio www.site.com/products.php?code=459 può essere scritto come www.site.com/products/459 o www.site.com/products/459.html.
Il secondo URL viene riscritto nel primo da mod_rewrite usando le regole di riscrittura specificate nel file .htaccess.
Abilita riscrittura mod
Per abilitare il modulo mod_rewrite usa il comando a2enmod.
$ sudo a2enmod rewrite
Per disabilitare questo modulo:
$ sudo a2dismod rewrite
Abilita .htaccess
Quindi modifica il file:
/etc/apache2/sites-enabled/000-default
Cerca la sezione :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </directory>
Sostituisci AllowOverride None con AllowOverride FileInfo come :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </directory>
Ora riavvia Apache
$ sudo /etc/init.d/apache2 restart
Testare le regole di Htaccess
Ora posiziona un file .htaccess nella cartella /var/www/ per testare la riscrittura della mod
Per verificare se mod_rewrite funziona o meno, riempi il file .htaccess con un salvataggio di testo spazzatura e quindi apri alcuni file di quella cartella nel browser.
Dovresti ottenere un errore interno del server 500 e un errore .htaccess nel file di registro di apache. Questo mostra che ora mod_rewrite è abilitato.
Ora inserisci alcune regole di riscrittura nel file .htaccess
RewriteEngine on RewriteRule ^([0-9]+).html$ index.php?id=$1
che dovrebbe sostituire ad esempio una cartella/23.html in cartella/index.php?id=23.
Collegamenti e risorse
Per ulteriori dettagli e istruzioni sull'impostazione della riscrittura delle mod e sulla scrittura delle regole di htaccess, controlla la pagina ufficiale della documentazione. Alcuni dei link sono riportati di seguito:
1. Riscrittura mod 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