Come configurare .htaccess / mod_rewrite su Apache

di , , sezione:

GD Star Rating
loading...

Alcuni esempi pratici di utilizzo del file .htaccess sul vostro hosting.

Da ricordare. Per intervenire su un file .htaccess:

  1. creare un file di testo .htaccess, facendo attenzione ad inserire il punto di fronte all’estensione (in modo che venga interpretato dal sistema come file nascosto);
  2. Inserite le righe che desiderate testare, avendo cura di sostituire nomesito.com con il nome del vostro sito reale, file.php con il nome preciso del file sul CMS su cui lavorare e così via. Alla fine, salvate i cambiamenti sul file.
  3. Utilizzate un client FTP per caricare sul dominio appropriato le vostre modifiche, solitamente nella root del sito (path tipico: /home/nomeaccount)

Schermata 2013-06-17 alle 17.42.58
Esempi base.

Redirect 301 di un’intera cartella su una alternativa, sempre sullo stesso sito.

Options +FollowSymLinks %%richiesto dal mod_rewrite
RewriteEngine On
RewriteRule ^uno.*$ http://nomesito.com/due/ [R=301,L]

Redirect 301 di tutti i file nella cartella uno verso la cartella due.

Options +FollowSymLinks %%richiesto dal mod_rewrite
RewriteEngine On
RewriteRule ^uno/(.*)$ http://nomesito.com/due/$1 [R=301,L]

Redirect di file.php verso due/file.php

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} nomesito.com$ [NC]
RewriteCond %{HTTP_HOST} !due
RewriteRule ^(.*)$ http://nomesito.com/due/$1 [R=301,L]

Redirect 301 della root (miosito.it) su una sottocartella (miosito.it/cartella)

 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^(www.)?miosito.it$
 RewriteRule ^(/)?$ cartella [L]

Redirect di tutti i file e le cartelle da versione www.nomesito.com verso nomesito.com

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^nomesito.com [NC]
RewriteRule ^(.*)$ http://www.nomesito.com/$1 [R=301,L]

Redirect da http://nomesito.com a https://nomesito.com (utile per le pagine di acquisto degli e-commerce e tutte quelle che utilizzino SSL)

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.nomesito.com/$1 [R,L]

Canonicalizzazione ed eliminazione dei duplicati.

Nota: non si intendono gli eventuali duplicati di pagine sparsi per il web (per i quali è necessario un intervento SEO apposito) bensì quelli sullo stesso sito, ad esempio i duplicati della home, tipo:

  1. http://www.nomesito.com
  2. http://nomesito.com>
  3. http://www.nomesito.com/index.html
  4. http://nomesito.com/index.html
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^nomesito.com
RewriteRule (.*) http://www.nomesito.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html
RewriteRule ^index.html$ http://www.nomesito.com/ [R=301,L]

Definire la pagina di errore 404

ErrorDocument 404 http://www.yoursite.com/404.php

Redirect 301 di singole pagine

redirect 301 /old-page.php http://www.yoursite.com/new-page.php

Supporto ad URL dinamici (senza ?), quindi da abc.php?id=76 a abc/76 (utile anche questo per gli e-commerce)

RewriteEngine on
RewriteRule ^abc/([^/.]+)/?$ abc.php?id=$1 [L]

Migrazione redirect 301 globale dominio old.it -> new.it

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new.it$ [NC]
RewriteRule ^(.*)$ http://www.new.it/$1 [L,R=301]

Migrazione redirect 301 globale dominio old.it -> new.it

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new.it$ [NC]
RewriteRule ^(.*)$ http://new.it/$1 [L,R=301]

(nota: da caricare sulla root FTP di old.it, in questo caso non serve indicare il nome del dominio origine)

Esempi per CMS.

htaccess di default per WordPress

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Si noti come gli eventuali errori del file .htaccess si riflettano in un errore 500 sul server che rende di fatto inaccessibile l’intero sito web.

Non andare via!

Scopri le ultime novità tecnologiche su migliorhosting.biz, e abbonati al feed RSS per essere sempre aggiornato! - Foto: Alcuni diritti riservati a Shan Sheehan

Come configurare .htaccess / mod_rewrite su Apache, 9.3 out of 10 based on 3 ratings