Alcuni snippet di codice htaccess pronti all’uso per tutti i webmaster: come velocizzare il sito, evitare l’hotlinking, mettere in sicurezza WordPress ed altro ancora.


HostingVirtuale

Prima di effettuare una qualsiasi delle modifiche di seguito indicate, ti suggerisco vivamente di effettuare una copia di backup del file .htaccess, che trovi nella cartella root del tuo sito (o nella sottocartella dove ci sono i file dello stesso).

Evitare l’ hotlinking

Della serie “cari vecchi suggerimenti”: per evitare sprechi di banda da parte di anonimi webmaster che utilizzano direttamente l’URL delle tue immagini nei loro siti, puoi ricorrere a questo semplice accorgimento. Notate che nohotlink.jpg è l’immagine statica che comparirà a chi prova a ricorrere a questa deprecata pratica.

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://(.+.)?miosito.org/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ /img/nohotlink.jpg [L]

Forzare lo slash finale negli URL

Dal punto di vista SEO è molto utile, ed è comodo per i visitatori in quanto da’ una sensazione di uniformità, imporre lo slash finale su tutti gli URL: dato che miosito.com/abc è diverso da miosito.com/abc/, dare uniformità alla cosa è un qualcosa di molto importante. A tale riguardo basta fare uso del seguente snippet htaccess:

 RewriteCond %{REQUEST_URI} /+[^.]+$
 RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Download obbligato di alcuni tipi di file

Per fare in modo che i vostri lettori scarichino un file di un certo tipo quando ci cliccano sopra, senza vederlo ad esempio dentro al browser.

<Files *.xls>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>
<Files *.pdf>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</Files>

Permettere l’embed di un font

Fermo restando che potete ricorrere a Google Font senza dover configurare nulla, l’embed di font da file esterni al vostro sito deve essere abilitato, altrimenti browser come Firefox non li caricheranno.

<FilesMatch ".(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://tuosito.org"
</IfModule>
</FilesMatch>

Impostare il caching e velocizzare il tuo sito

Anche qui, potete imporre questa modifica da un plugin di WordPress per il caching, quanto segue vale in generale per qualsiasi sito, ed è una delle recommendation preferite da Google nel 2011 (sembrerebbe che la velocità di caricamento del sito sia un vero e proprio fattore di ranking).

# 1 ANNO
<FilesMatch ".(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 SETTIMANA
<FilesMatch ".(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 2 GIORNI
<FilesMatch ".(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</FilesMatch>
# 1 MINUTO
<FilesMatch ".(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>

Bloccare lo spam sul tuo sito in WordPress

La maggioranza dello spam di WordPress arriva dall’accesso diretto al file wp-comments-post.php, utilizzato dagli spam-bot per mandarvi commenti e link spazzatura. Perchè allora non impedire loro l’accesso con queste righe di codice? (mod_rewrite deve essere abilitato con la prima riga di codice).

RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.*nometuodominio.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Redirect al sito mobile

È possibile effettuare il redirect al vostro sito mobile per i dispositivi abilitati: nella pratica, comunque, se avete WordPress potete fare lo stesso mediante degli opportuni plugin e senza manipolare il file htaccess.

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/m/.*$
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT}  "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
#------------- The line below excludes the iPad
RewriteCond %{HTTP_USER_AGENT} !^.*iPad.*$
#-------------
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] #*SEE NOTE BELOW
RewriteRule ^(.*)$ /m/ [L,R=302]

Unificare i formati di feed RSS

Fino a qualche tempo fa utilizzavamo RSS, Atom e Rdf : attualmente RSS sembra essere diventato lo standard, e così sarebbe opportuno reindirizzare tutti i feed del vostro sito ad esso. Il seguente frammento di codice htaccess può essere utilizzato a tale scopo, direttamente in WordPress (e da modificare per gli altri CMS)

<IfModule mod_alias.c>
 RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://example.com/feed/
 RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://example.com/comments/feed/
</IfModule>

Abilitare i video di HTML5 sul tuo sito

HTML5 offre potenzialità enormi dal punto di vista grafico e di prestazioni, tra cui la possibilità di inserire video in streaming  senza bisogno di Flash. Quasi nessuno di quelli che ne (s)parlano ci ha mai raccontato che è necessario abilitare questa feature mediante htaccess: ecco come fare.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
AddType video/ogg .ogv
AddType video/ogg .ogg
AddType video/mp4 .mp4
AddType video/webm .webm
AddType application/x-shockwave-flash swf

Log degli errori PHP

Se il sito è appena passato da sviluppo a rilascio, potete considerare di fare un bel log degli errori all’interno di un file apposito, in modo da tenere sotto controllo errori subdoli e non mostrarli all’utente.

# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log

Lanciare codice PHP dentro dei file JavaScript

Se volete fare in modo che i vostri file Javascript leggano i contenuti dei file PHP (ad esempio del database), potete fare uso del seguente accorgimento. Personalmente preferisco il più semplice var jsVar = "<?php echo $phpVar ?>";, ma in alcuni casi può essere comodo poter lanciare file PHP direttamente dentro file JS.

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js

<FilesMatch ".(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

Fonti:

 


Visita anche:

Vota!

Related Posts Plugin for WordPress, Blogger...
Commenta il post qui sotto o abbonati al feed RSS per non perderti i prossimi articoli. Se hai una domanda, puoi porla nel nuovo forum! Prima di commentare, leggi le regole del blog