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 sitio 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?
Para 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).
Altrimenti possiamo installare un plugin per editare il file .htaccess, tra i plugin disponibili consiglio questi:
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 ##