Modificare htaccess WordPress

Condividi questo articolo

Modificare htaccess WordPress. Grazie al file .htaccess si possono creare delle regole per il nostro webserver Apache, cioè lo spazio web dove risiede il nostro sito. Grazie a queste regole possiamo migliorare alcuni comportamenti del nostro sito web e velocizzare anche il tempo di caricamento. In questa guida scopriremo alcuni parametri fondamentali del file .htaccess e vi fornirò anche delle regole da inserire al vostro sito web.

Come posso Modificare htaccess WordPress?

Per modificare htaccess WordPress la strada più semplice (per utenti esperti) è quella di accedere tramite ftp al proprio spazio web e cercare nella cartella “public” il file .htaccess che si trova nella cartella principale (root principale).

Ecco come Modificare htaccess WordPress via ftp

Ecco come Modificare htaccess WordPress via ftp

Altrimenti possiamo installare un plugin per editare il file .htaccess, tra i plugin disponibili consiglio questi:

WP htaccess Control
WP htaccess Control
Sviluppatore: António Andrade
Prezzo: Gratis
  • WP htaccess Control Screenshot

 

Redirezioni per User Agent

Questi sono le redirezioni standard da utilizzare per segnalare l’indirizzo del nostro sito web a utenti e Googlebot.

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^olddomain.com$
RewriteCond %{HTTP_USER_AGENT} Googlebot [OR]
RewriteCond %{HTTP_USER_AGENT} msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} Slurp
RewriteRule ^(.*)$ http://bcd.com/$1 [L,R=301]

Impostare la homepage predefinita

Questo tipo di regola consente di esprimere la pagina predefinita del nostro sito web.

#Specificare una homepage predefinita (index page)
DirectoryIndex home.html

Restringere l’accesso a specifici IP

Questa regola è utile per restringere l’accesso al sito solo a determinati ip, pensiamo a un sito web in via di sviluppo che può essere visibile solo a determinate connessioni a internet come quella di chi lo sta progettando e quella del cliente.

#Permettere l'accesso soltanto a specifici IP
deny from all
allow from 64.11.219.110
allow from 210.44.45.54

Redirezionare tutte le pagine

Questa regola consente di reindirizzare tutte le pagine verso un nuovo dominio.

#Reindirizzare tutte le pagine di vecchio-dominio.com verso newdomain.com
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.vecchio-dominio.com$ [OR]
RewriteCond %{HTTP_HOST} ^vecchio-dominio.com$
RewriteRule ^(.*)$ http://www.nuovo-dominio.com/$1 [R=301,L]

Impedire l’accesso alle cartelle

Molto spesso lo spazio web viene utilizzato anche per conservare file che vanno al di fuori del sito web, con questo comando bloccherete l’accesso a determinate cartelle.

#Prevenire il caricamento di sottocartelle. 
#Questo comando va inserito nel file .htaccess del dominio primario
RewriteCond %{HTTP_HOST} ^primary\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.primary\.com$
RewriteRule ^addon\.com\/?(.*)$ "http\:\/\/www\.addon\.com\/$1" [R=301,L]

Impedire l’accesso ai sotto-domini

Grazie a questa regola è possibile bloccare l’accesso a sotto-domini del nostro sito web.

#Prevenire il caricamento del sottodominio. 
#Questo comando va inserito nel file .htaccess del dominio primario
RewriteCond %{HTTP_HOST} ^subname\.primary\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.subname\.primary\.com$
RewriteRule ^(.*)$ "http\:\/\/www\.addon\.com\/$1" [R=301,L]

Forzare l’accesso su dominio non-www

Se vogliamo che nel nostro sito web non sia visibile “www” dobbiamo utilizzare questa regola.

#Non inserire mai www nel dominio. 
#Sostituisci 'example.com' con il tuo dominio
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]

Forzare l’accesso su dominio con www

Al contrario della precedente regola, questa consente di esplicitare il “www” nel link del nostro sito.

#Inserisci sempre www nel dominio
#Sostituisci 'example.com' con il tuo dominio
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L]

Forzare l’accesso sotto HTTPS

Se il nostro sito web utilizza il protocollo sicuro HTTPS e se questo non funziona correttamente possiamo risolvere la situazione utilizzando questa regola.

#Usare sempre HTTPS per le connessioni sicure
#Sostituisci 'www.example.com' con il tuo dominio così come appare sul certificato HTTPS
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Bloccare il traffico da referrals specifici

Alcune volte notiamo un picco di visite sul nostro sito web, molte volte queste visite non sono da veri e propri utenti ma vengono generare da referrals esterni che molte volte risultano inutili, grazie a questa regola possiamo bloccare ogni singolo referal inserendolo in questa lista; basterà aggiungere il sito web con la relativa estensione.

#Bloccare il traffico proveniente da certi siti
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite\.com [NC,OR]
RewriteCond %{HTTP_REFERER} badforum\.com [NC,OR]
RewriteCond %{HTTP_REFERER} badsearchengine\.com [NC]
RewriteRule .* - [F]

Negare l’accesso a certi tipi di file

Con questa semplice regola possiamo negare l’accesso a determinate estensioni di file.

#Non permettere il caricamento di specifici tipi di file
RewriteEngine on
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|exe|swf)$ - [F,NC]

Abilitare il Caching

Questa regola consente di abilitare il Caching per aumentare la velocità di caricamento del sito web.

# Add Caching.
<FilesMatch ".(ico|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Cache-Control "max-age=3600"
</FilesMatch>

Abilitare la compressione di file HTML, CSS, JavaScript e XML

Grazie a questa regola è possibile comprimere alcuni file del nostro sito web. Inoltre è possibile guadagnare anche diversi secondi nel caricamento del nostro sito web.

# Compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Redirezioni WordPress dopo cambio permalink

Questa funzione è utile nel caso in cui i nostri permalink vengano sostituiti da nuovi.

## From permalink "Day and Name (/%year%/%monthnum%/%day%/%postname%/)" to "postname"
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ http://www.yourwebsite.com/$4

## From permalink "Month and Name (/%year%/%monthnum%/%postname%/)" to "postname"
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)$ http://www.yourwebsite.com/$3

## From permalink "Numeric (/archives/%post_id%)" to "postname"
RedirectMatch 301 ^/archives/(\d+)$ http://www.yourwebsite.com/?p=$1

Configurazione standard file per modificare htaccess 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
## ENABLE GZIP COMPRESSION ##
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
## ENABLE GZIP COMPRESSION ##
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##
Condividi questo articolo