[Guid]a file htaccess: mod-rewrite e redirect 404 Wed Sep 07, 2011 6:53 am
Pubblicato da: Spacca Spacca
Ciao,
Oggi scopriamo a cosa serve e come redigere un buon file htaccess per i nostri progetti di web design. Per chi non lo sapesse l’htaccess è un piccolo file creato per molti scopi, come ad esempio la ri-scrittura dei link per renderli più appetibili ai motori di ricerca.
Questo tipo di file deve essere scritto come un normale file di testo .txt (usate il blocco note), per renderlo “operativo” uno volta uploadato nella root del nostro server dovrete rinominarlo da htaccess.txt in .htaccess, questo passaggio è molto importante dato che determina il corretto funzionamento dello stesso.
Vediamo ora i vari usi di questo file.
Durante la creazione e amministrazione di un sito web si deve sempre tenere conto di “intoppi” o successivi cambiamenti. Nel caso di siti complessi è buona norma creare una pagina speciale chiamata “404″, ovvero una pagina web ultra-ottimizzata per i motori di ricerca che si visualizzi nel caso un ignaro visitatore incappasse in un articolo non più esistente o rinominato. Senza questo tipo di pagina il visitatore si troverebbe di fronte alla pagina standard del server, molto spoglia, che lo farebbe letteralmente fuggire del nostro sito. Con una pagina 404 invece, possiamo:
- predisporre un motore di ricerca dei contenuti, il visitatore non trovando più quello cercato, potrebbe voler cercare ugualmente nel nostro sito.
- reperire dal database articoli “simili” a quelli cercati dal visitatore, o in alternativa, visualizzare gli articoli “HOT” del sito per incuriosire il visitatore.
- Nella pagina 404 è buona norma spiegare cos’è successo, non tutti sono internauti provetti, pertanto scrivete frasi d’effetto del tipo: “OPS quello che stai cercando è stato cancellato o spostato, prova a cercare all’interno del sito!”
- Per approfondire vi rimando a questo mio vecchio articolo dove si svela tra l’altro come creare pagine 404 per i più noti CMS (Joomla e WP).
Ritornando al file htaccess, per effettuare il redirect alla vostra pagina 404.php scrivete sul blocco note quanto segue:
salvate e uppate sul vostro server (root del sito mi raccomando!) e rinominate poi il file in .htaccess , ora andate sul vostro sito e scrivete www.tuosito/ciao a questo punto se avete creato correttamente anche la pagina 404.php il server dovrebbe reindirizzarvi in automatico.
NOTA BENE: non effettuate il redirect alla home page del sito, oltre ad essere scorretto, è buona norma usare una pagina 404 creata ad “hoc” per queste evenienze. Ricordate di ottimizzarla anche lato SEO per ridurre al minimo il rischio di penalizzazioni.
NOTA2: Se usi un qualsiasi CMS nel tuo htaccess vedrai già scritta questa regola quindi non aggiungerla ulteriormente!
Un altro uso molto utile di htaccess è dare la possibilità allo sviluppatore di creare delle homepage “secondarie” nel caso la prima non sia raggiungibile per diversi problemi, o sia offline per manutenzione. Ecco la regola:
Come vedete se il file index.php non è raggiungibile viene effettuato un redirect su indexoffline.php , che può essere ad esempio una pagina di manutenzione del tipo: “ritorneremo online a breve”. Potete impostare quante pagine volete, il server andrà a oltranza (seguendo ovviamente l’rodine fornito dalla regola) finchè non trova una pagina web raggiungibile da usare come home page.
I vantaggi? bhè se ad esempio volete modificare il sito e metterlo offline vi basterà rinominare index.php in index2.php e automaticamente il server userà come home page la vostra seconda pagina, nel nostro caso di esempio, indexoffline.php.
Questa regola può essere utilissima in WordPress dato che il noto CMS (per ora) non possiede la modalità manutenzione.
I CMS integrano già questa regola, ovvero nel caso lo attiviate, riscrivono dinamicamente gli url (indirizzi) delle vostre pagine web. A cosa serve? bhè sappiate che questa è forse la funzione più importante del file htaccess perchè vi permette con il minimo sforzo di salire nelle SERP e di far posizionare meglio il vostro sito. Di fatto il file con le regole rewrite, “riscrive” letterlamente gli ugly url del tipo:
www.tuosito.it/singolo.php?cat=trilocali&titolo=villa-sul-mare
www.tuosito.it/trilocali/villa-sul-mare.html
Come vedete per i motori di ricerca il secondo tipo di url è molto più ottimizzato dato che elimina le parti “superflue” del link, che ci sono servite in fase di programmazione ma che ora danno solo fastidio.
Questo tipo di regole non sono per niente facili, e richiedono basi php, eccone un esempio:
- Link finale con estensione .html
- voglio riscrivere l’ugly url che contiente una variabile cat e una variabile titolo (link a due variabili).
-Con [L] chiudo la scrittura (risparmia risorse sul server).
In questo esempio quando il server incontra un ugly url due variabili di quel tipo riscrive automaticamente il link eliminando le parti inutili. Ricordo che tutti i CMS hanno già questa funzione pronta da usare (vedi i permalink di WP e Joomla), dovrete ricorrere alla “scrittura manuale” del file htaccess solo nel caso vogliate ideare un vostro cms o progetto web in php.
Compressione e gestione della cache
Uno degli strumenti forniti da htaccess è anche quello della gestione della cache. Ecco un esempio di compressione tramite zlib (se il vostro server lo supporta):
Oggi scopriamo a cosa serve e come redigere un buon file htaccess per i nostri progetti di web design. Per chi non lo sapesse l’htaccess è un piccolo file creato per molti scopi, come ad esempio la ri-scrittura dei link per renderli più appetibili ai motori di ricerca.
Questo tipo di file deve essere scritto come un normale file di testo .txt (usate il blocco note), per renderlo “operativo” uno volta uploadato nella root del nostro server dovrete rinominarlo da htaccess.txt in .htaccess, questo passaggio è molto importante dato che determina il corretto funzionamento dello stesso.
Vediamo ora i vari usi di questo file.
Redirect a una pagina nel caso di errore 404
Durante la creazione e amministrazione di un sito web si deve sempre tenere conto di “intoppi” o successivi cambiamenti. Nel caso di siti complessi è buona norma creare una pagina speciale chiamata “404″, ovvero una pagina web ultra-ottimizzata per i motori di ricerca che si visualizzi nel caso un ignaro visitatore incappasse in un articolo non più esistente o rinominato. Senza questo tipo di pagina il visitatore si troverebbe di fronte alla pagina standard del server, molto spoglia, che lo farebbe letteralmente fuggire del nostro sito. Con una pagina 404 invece, possiamo:
- predisporre un motore di ricerca dei contenuti, il visitatore non trovando più quello cercato, potrebbe voler cercare ugualmente nel nostro sito.
- reperire dal database articoli “simili” a quelli cercati dal visitatore, o in alternativa, visualizzare gli articoli “HOT” del sito per incuriosire il visitatore.
- Nella pagina 404 è buona norma spiegare cos’è successo, non tutti sono internauti provetti, pertanto scrivete frasi d’effetto del tipo: “OPS quello che stai cercando è stato cancellato o spostato, prova a cercare all’interno del sito!”
- Per approfondire vi rimando a questo mio vecchio articolo dove si svela tra l’altro come creare pagine 404 per i più noti CMS (Joomla e WP).
Ritornando al file htaccess, per effettuare il redirect alla vostra pagina 404.php scrivete sul blocco note quanto segue:
- Code:
ErrorDocument 404 /404.php
salvate e uppate sul vostro server (root del sito mi raccomando!) e rinominate poi il file in .htaccess , ora andate sul vostro sito e scrivete www.tuosito/ciao a questo punto se avete creato correttamente anche la pagina 404.php il server dovrebbe reindirizzarvi in automatico.
NOTA BENE: non effettuate il redirect alla home page del sito, oltre ad essere scorretto, è buona norma usare una pagina 404 creata ad “hoc” per queste evenienze. Ricordate di ottimizzarla anche lato SEO per ridurre al minimo il rischio di penalizzazioni.
NOTA2: Se usi un qualsiasi CMS nel tuo htaccess vedrai già scritta questa regola quindi non aggiungerla ulteriormente!
Usare una (o più) home page
Un altro uso molto utile di htaccess è dare la possibilità allo sviluppatore di creare delle homepage “secondarie” nel caso la prima non sia raggiungibile per diversi problemi, o sia offline per manutenzione. Ecco la regola:
- Code:
DirectoryIndex index.php indexoffline.php
Come vedete se il file index.php non è raggiungibile viene effettuato un redirect su indexoffline.php , che può essere ad esempio una pagina di manutenzione del tipo: “ritorneremo online a breve”. Potete impostare quante pagine volete, il server andrà a oltranza (seguendo ovviamente l’rodine fornito dalla regola) finchè non trova una pagina web raggiungibile da usare come home page.
I vantaggi? bhè se ad esempio volete modificare il sito e metterlo offline vi basterà rinominare index.php in index2.php e automaticamente il server userà come home page la vostra seconda pagina, nel nostro caso di esempio, indexoffline.php.
Questa regola può essere utilissima in WordPress dato che il noto CMS (per ora) non possiede la modalità manutenzione.
Scrivere i permalink, introduzione al mod rewrite.
I CMS integrano già questa regola, ovvero nel caso lo attiviate, riscrivono dinamicamente gli url (indirizzi) delle vostre pagine web. A cosa serve? bhè sappiate che questa è forse la funzione più importante del file htaccess perchè vi permette con il minimo sforzo di salire nelle SERP e di far posizionare meglio il vostro sito. Di fatto il file con le regole rewrite, “riscrive” letterlamente gli ugly url del tipo:
www.tuosito.it/singolo.php?cat=trilocali&titolo=villa-sul-mare
www.tuosito.it/trilocali/villa-sul-mare.html
Come vedete per i motori di ricerca il secondo tipo di url è molto più ottimizzato dato che elimina le parti “superflue” del link, che ci sono servite in fase di programmazione ma che ora danno solo fastidio.
Questo tipo di regole non sono per niente facili, e richiedono basi php, eccone un esempio:
- Code:
RewriteEngine On
- Code:
RewriteRule ^([^/]*)/([^/]*)\.html$ /singolo.php?cat=$1&titolo=$2 [L]
- Link finale con estensione .html
- voglio riscrivere l’ugly url che contiente una variabile cat e una variabile titolo (link a due variabili).
-Con [L] chiudo la scrittura (risparmia risorse sul server).
In questo esempio quando il server incontra un ugly url due variabili di quel tipo riscrive automaticamente il link eliminando le parti inutili. Ricordo che tutti i CMS hanno già questa funzione pronta da usare (vedi i permalink di WP e Joomla), dovrete ricorrere alla “scrittura manuale” del file htaccess solo nel caso vogliate ideare un vostro cms o progetto web in php.
Compressione e gestione della cache
Uno degli strumenti forniti da htaccess è anche quello della gestione della cache. Ecco un esempio di compressione tramite zlib (se il vostro server lo supporta):
- Code:
#Etag
FileETag None
# compressione zlib
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml
</IfModule>
<ifmodule mod_php5.c>
php_value zlib.output_compression 16386
</ifmodule>
#abilitazione cache
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>
<IfModule mod_headers.c>
ExpiresActive On
ExpiresDefault A0
# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A9030400
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A604800
</FilesMatch>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
ExpiresDefault A10800
</FilesMatch>
</IfModule>
fonte: targetweb