This entry was posted on Tuesday, March 10th, 2009 at 10:48 pm and is filed under Apache. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

abilitare mod rewrite su windows

Abbiamo visto nell’articolo precedente come abilitare in pochi semplici passi il mod rewrite di apache su Debian.
Ovviamente la stessa cosa è fattibile su windows, ma come capita di vedere molto spesso sul web, le difficoltà che gli utenti sembrano provare sono ben superiori.
In questa guida partiremo dal presupposto che sia stata installata la versione “pulita” di apache non derivata da pacchetti d’installazione come EasyPHP anche se, in buona sostanza, le cose non dovrebbero variare a meno che il mod rewrite non sia presente nel pacchetto che viene scelto.
Per prima cosa bisogna munirsi di apache, scegliete voi quale versione preferite dal sito ufficiale.
Quando l’avrete scaricato e correttamente installato, andiamo a procedere con la modifica del suo file di configurazione che troverete alternativamente o nel menù avvio:
Start > tutti i programmi > apache HTTP Server > Configura Apache Server > Edit httpd.config
o anche in:
C:\Programmi\Apache Software Foundation\Apache2.2\conf\httpd.conf
Adesso possiamo editare il nostro file di configurazione.
Una semplice avvertenza, usate blocco note o in alternativa posso consigliarvi un ottimo programma OS quale Notepad++.
Una volta aperto troverete davanti a voi i settaggi base di Apache così come quando è stato installato. Per ogni evenienza eseguite prima un Back Up del file.
Fatto il Back Up iniziamo con la modifica del nostro config andando a cercare le righe:
<Directory />
Options FollowSymLinks Includes
AllowOverride none
Order deny,allow
Deny from all
</Directory>
Sostituite il None con all
<Directory />
Options FollowSymLinks Includes
AllowOverride all
Order deny,allow
Deny from all
</Directory>
Poco più sotto troverete la stessa regola ma per la cartella principale dell’host, di default è htdocs.
<Directory “C:/Programmi/Apache Software Foundation/Apache2.2/htdocs”>
La sintassi è la stessa della precedente e fa riferimento a quella specifica cartella del server. Anche in questo caso la riga
AllowOverride none
Deve essere cambiata con
AllowOverride all
per assicurare l’override nelle cartelle.
Ma ancora non basta, infatti componente essenziale delle tecniche SEO è il file htaccess. In questo file vengono contenute le regole della cartella ed apache punta di default a .htaccess contenuto nelle varie directory a partire da htdocs.
Gli esperti sicuramente sapranno che un file che inizia con il . , in ambiente linux equivale ad un file nascosto ma su windows non ha alcun senso. Di fatto quello che a noi occorre è un file di testo leggibile e quindi con estensione .txt.
Joomla, ad esempo, proprio tenendo conto di questo importante fattore, rilascia il proprio .htaccess sottoforma di htaccess.txt.
Ovviamente questo file non deve essere in alcun modo leggibile da terze parti e quindi deve essere protetto.
Per proteggerlo, ci avvarremo di una direttiva di apache e dato che vogliamo che il nostro file sia htaccess.txt e non .htaccess, andremo a modificare questi nomi in apache.
Per prima cosa proteggiamo il file editando la regola:
<FilesMatch “^\.ht”>
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
con
<FilesMatch “^\htaccess”>
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
per indicare al server di proteggere dalla lettura tutti i file che avranno nome iniziante per htaccess.
Ma dobbiamo anche indicare ad apache il nuovo nome da noi dato e a cui esso dovrà fare riferimento.
Per farlo troviamo questo codice
AccessFileName .htaccess
E sostituiamola con:
AccessFileName htaccess.txt
se questa riga non dovesse essere presente nel vostro file config, aggiungetela voi.
Nota importante. Nel file di configurazione, non usate il cerca e sostituisci tutto per AllowOverride All dato che questo compare anche in cartelle riservate ad apache come:
<Directory “C:/Programmi/Apache Software Foundation/Apache2.2/cgi-bin”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
in cui ovviamente la direttiva AllowOverride deve rimanere su None!
A questo punto, non ci resta che togliere il commento # davanti la riga
LoadModule rewrite_module modules/mod_rewrite.so
riavviate il server e buon divertimento con i vostri file htaccess ed esperimenti SEO.
Leave a Reply

