In questu articulu, scopreremu i principii fundamentali di l'usu di u schedariu .htaccess, chì hè cruciale per rinfurzà u SEO. Stu schedariu assicura una indexazione curretta di e pagine da i mutori di ricerca. Ampararemu cumu gestisce i redirects, cunfigurà a sicurità è aumentà u rendiment. Inoltre, daremu cunsiglii nantu à cumu cunfigurà stu schedariu indipindente.
Perchè .htaccess hè necessariu
U schedariu .htaccess agisce cum'è una spezia di "controllu remoto" per i sviluppatori web in i servitori Apache. Offre strumenti convenienti per aghjustà diversi parametri è gestisce u cumpurtamentu di un situ web. Quandu l'accessu direttu à i schedarii di cunfigurazione principali di u servitore ùn hè micca dispunibule (cum'è spessu u casu cù l'ospiti virtuale, per esempiu), .htaccess diventa un strumentu utile per fà i cambiamenti necessarii.
Htaccess hè spessu situatu in u cartulare radicali di u vostru situ o in quelli cartulare induve a cunfigurazione speciale hè necessariu. Per esempiu, sè vo aduprate WordPress, a cunfigurazione pò esse fatta attraversu u plugin Yoast SEO, chì avemu discututu in l'articulu Configurazione di robots.txt. In altri casi, hè abbastanza per andà in u cartulare necessariu è edità u schedariu .htaccess esistenti, o creanu s'ellu ùn hè micca statu ancu creatu.
Configurazione di u File .htaccess
301 Redirect htaccess
A redirezzione 301 in u schedariu .htaccess pò esse paragunatu à una redirezzione permanente in un situ web. Informa i mutori di ricerca è i navigatori chì a pagina hè oghji permanentemente situata in un novu indirizzu è suggerisce l'aghjurnamentu di i marcati è l'indici. Tali redirezzione hè tipicamente utilizata quandu una pagina hè mossa o sguassata per priservà u so ranking in i risultati di ricerca è redirige i visitatori à u novu locu.
Per attivà i redirects, avete bisognu di attivà u cumandamentu currispundente in u schedariu .htaccess:
RewriteEngine on
Dopu quì, pudete cunfigurà a forma più simplice di redirezzione:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
Una redirezzione simili usendu u RedirectPermanent a direttiva hè cusì:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Quessi sò i metudi di redirezzione più faciuli di cunfigurà. Cunsideremu una cunfigurazione chì usa altri tipi di redirezzione più avanzati cù u mod_rewrite modulu:
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]
# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>
A 302 redirect .htaccess, chì indica a traslocazione temporale, hè scontru assai menu freti. Eccu un esempiu di tali paràmetri:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direttiva ErrorDocument
Stu paràmetru vi permette di cuntrullà ciò chì l'utilizatore vede quandu l'errore HTTP si trovanu in u vostru situ. Invece di u missaghju d'errore standard, pudete mustrà a vostra propria pagina, chì serà più informativa per u visitore è aiutanu à capisce ciò chì hè accadutu. Basta à seguità sta sintassi per l'usu:
ErrorDocument <error_code> <URL_page>
Per esempiu,
ErrorDocument 404 /errors/not_found.html
Significa chì quandu a 404 errore si verifica, a pagina à /errors/not_found.html serà apertu. L'URL assoluti sò specificati in modu simile:
ErrorDocument 500 http://example.com/errors/server_error.html
Questu esempiu indica a visualizazione di u server_error.html pagina à http://example.com/errors/ in casu di a 500 errore.
Denegazione di l'accessu à un annuariu di u situ
U schedariu .htaccess hà u cumandimu Negà da tutti, chì aiuta à negà l'accessu à certi cartulare o schedarii in u vostru servitore web. Questu pò esse utile se vulete ammuccià l'infurmazioni privati o i schedarii impurtanti da i visitori di u situ per assicurà a sicurità di dati.
Per disattivà a lista (vede tutti i cartulari dispunibili), avete bisognu di aghjunghje a linea:
Options -Indexes
Un esempiu di bluccà l'accessu à un repertoriu specificu s'assumiglia cusì:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
In listessu modu, pudete nigà l'accessu à un unicu schedariu:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
O per una gamma di schedari per estensione:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Bloccu l'accessu per IP
U bloccu di l'accessu per IP in u schedariu .htaccess hè un metudu chì vi permette di restringe l'accessu à u vostru situ web per indirizzi IP specifichi o i so gruppi. Questu pò esse utile se vulete impedisce l'accessu à u vostru situ o e so parti specifiche per certe persone o bots indesevuli.
Bluccà un unicu indirizzu IP hè fattu cù u cumandimu:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
U bluccatu di parechji indirizzi IP hè fattu in modu simile duppiendu u "Negà da" in linea cù l'indirizzi richiesti.
Per bluccà una gamma di indirizzi IP:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Per permette l'accessu solu per IP specifichi, aghjunghje u codice:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Per una denegazione cumpleta di l'accessu, utilizate a direttiva Negà da tutti, è per bluccà l'indirizzi per maschera, specificate Denegate da 11.22.
Induve, 11.22 hè l'indirizzu IP sarule.
Blocca i visitatori da User-Agent
Blocking users by User-Agent in u schedariu .htaccess hè un metudu di cuntrullà quale pò accede à u vostru servitore web basatu annantu à l'infurmazioni nantu à u navigatore chì u visitatore usa. A stringa User-Agent cuntene dati nantu à u navigatore chì una persona usa per interagisce cù u vostru servitore, è grazia à questa informazione, pudete restringe l'accessu per certi utilizatori.
A manera più cumuna di bluccà da User-Agent hè à aduprà mod_rewrite:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>
In questu esempiu:
- RewriteCond %{HTTP_USER_AGENT} hè utilizatu per verificà a stringa User-Agent.
- ^Bot1, ^Bot2, ^Bot3 sò esempi di stringhe User-Agent chì vulemu bluccà. I modificatori NC indicanu chì a paraguna deve esse insensibile à u casu.
- RewriteRule ^.*$ - [F,L] s'applica à a dumanda se qualcunu di e cundizioni RewriteCond sò scontri. Manda una risposta cù u codice di statutu 403 Proibitu (F) è ferma e regule di trasfurmazioni (L).
Caching in htaccess
A cunfigurazione di caching attraversu u schedariu .htaccess aiuta à accelerà u vostru situ facendu carica più veloce per l'utilizatori. Funciona cusì: certi schedari, cum'è l'imaghjini, i stili CSS è i script JavaScript, sò guardati in a cache di u navigatore di l'utilizatori dopu a prima carica. Avà u navigatore pò aduprà sti schedari da u cache, invece di ricaricà da u servitore ogni volta chì l'utilizatore visita una pagina. Questu reduce u tempu di carica è migliurà u rendiment di u situ.
Cunsiderate un esempiu:
# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
Per i risorse chì sò spessu aghjurnati, invece, hè necessariu disattivà a cache:
# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>
Optimizing Site Performance
lu mod_deflate e mod_gzip moduli in Apache aiutanu à cumpressà l'infurmazioni chì u servitore manda à i dispositi di l'utilizatori. Questu rende i schedarii più chjuchi in grandezza, chì à u turnu accelerà a carica di pagina. Tuttavia, hè impurtante ricurdà chì u supportu è a cunfigurazione di sti moduli pò varià secondu u vostru servitore.
Esempiu di usu di u mod_deflate modulu:
<IfModule mod_deflate.c>
# Compressing text file types
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
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Esempiu per mod_gzip:
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>
Avemu discututu i direttivi più cumunimenti usati. Pudete familiarizàvi cù tutte e capacità di u schedariu in u a ducumentazione ufficiale.
Cumu Verificate a Funzionalità di u File .htaccess
Per verificà s'ellu u vostru schedariu .htaccess travaglia nantu à u situ, pudete fà i seguenti passi:
- Cambia intenzionalmente u schedariu .htaccess cù un errore. In risposta, u servitore deve dà un errore. Stu metudu mostra se l'operazione di u schedariu hè generalmente appiicata à u servitore.
- Verificate a funziunalità di i cambiamenti specifichi chì avete fattu. Per esempiu, fate un aghjustamentu minore à unu di i paràmetri è evaluà a presenza di cambiamenti.
- Verificate u codice di statutu di a pagina se i cambiamenti sò ligati à a risposta di u servitore. Cumu fà questu, avemu descrittu prima in l'articulu Codici d'errore HTTP: una lista completa di l'errori di u servitore.
- Consultate i logs di u servitore. Mostranu tutti l'errori ligati à l'operazione di u schedariu .htaccess.
- Realizà a prova utilizendu servizii o strumenti in linea.
Hè impurtante di capisce chì per verificà a funziunalità di u schedariu .htaccess, ùn avete micca bisognu di fà tutti i passi in una volta. Hè abbastanza per sceglie u metudu più adattatu da a lista è aduprà.
cunchiusioni
A cunfigurazione di u schedariu .htaccess hè un passu impurtante in l'optimizazione è a prutezzione di u vostru servitore Apache. Avemu esploratu cumu stu schedariu aiuta à gestisce i redirects, cumpressà u cuntenutu è assicurà a sicurità. Quandu avete maestru di travaglià cù .htaccess, uttene un strumentu putente per migliurà u rendiment è a funziunalità di i siti web.