Su un sito PrestaShop, la voce.htaccess è essenziale per il corretto funzionamento di molte funzioni. Gestisce gli URL riscritti, la sicurezza, le prestazioni e la manutenzione. Comprendere questo aspetto la aiuterà ad evitare numerosi bug e a sfruttare appieno le capacità della piattaforma.
Qual è il.htaccess in PrestaShop?
.htaccess è un file di configurazione per il server Apache. In PrestaShop, questo file viene generato automaticamente dal back office, a seconda delle opzioni attivate (come gli URL semplificati o la riscrittura degli URL).
Permette a PrestaShop di :
- gestire gli URL "puliti" (ad esempio :
/t-shirts/5-tshirt-bleu.htmlinvece diindex.php?id_product=5) - reindirizza alcune pagine (301 302)
- proteggere i file o le cartelle sensibili
- migliorare la sicurezza e le prestazioni
| 📝 Spesso si trova nella radice del negozio, di solito nella cartella public del suo hosting. Può essere utilizzato in altri luoghi per proteggere determinati file. |
Come gestisce PrestaShop.htaccess ?
Generazione automatica
PrestaShop genera o aggiorna il file.htaccess :
- Quandoattiva gli URL semplificati (SEO & URL > "URL semplificato")
- Quando si ripristinano gli URL utilizzando il pulsante "Genera file".
.htaccess"nel back office - Quando si installano alcuni moduli
Il contenuto viene strutturato automaticamente tra due :
# ~~start~~ Do not remove this comment, PrestaShop uses it to build your .htaccess file ... # ~~end~~
| ⚠️ Non modifichi mai questo blocco direttamente a mano: PrestaShop lo riscrive automaticamente. |
Usi pratici del file.htaccess in PrestaShop
⚠️ Gestione dei file.htaccessnon è consigliato ai principianti. Anche se ha l'esperienza necessaria, salvi sempre il suo file .htaccess prima di modificarlo. |
1. Riscrittura dell'URL
Per URL leggibili e ottimizzati per la SEO.
RewriteEngine on RewriteRule ^t-shirts/5-tshirt-bleu.html$ product.php?id_product=5 [QSA,L]
2. proteggere alcuni file sensibili
Impedisce l'accesso diretto ai file di configurazione o di registro.
<FilesMatch "\\.(tpl|ini|log|conf|sql)$"> Order Allow,Deny Deny from all </FilesMatch>
3. forzare HTTPS
Reindirizza tutte le richieste alla versione HTTPS del sito.
Attivi anche nel back office: "Abilita SSL" in Impostazioni > Generale.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
4. reindirizzamenti personalizzati
Sconsigliata ai principianti, questa opzione è utile dopo cancellazioni di prodotti, revisioni del catalogo, modifiche dell'URL o reindirizzamento a una pagina di manutenzione. Esistono diverse sintassi per diverse esigenze.
Ad esempio, per reindirizzare a un nuovo prodotto:
Redirect 301 /ancien-produit.html /nouveau-produit.html
Rischi di una gestione errata
- Sito inaccessibile se errore di sintassi
- Problemi di navigazione (cicli di reindirizzamento, errori 500)
- Disattivazione involontaria dei moduli o del front office
- Problemi SEO (pagine non indicizzate, errori 404)
Buona pratica
-
Esegua sempre un backup del file
.htaccessprima della modifica. - Non modifichi il blocco generato automaticamente da PrestaShop (
# ~~start~~ ... # ~~end~~) - Utilizzi un editor di testo affidabile (VS Code, Notepad++, ecc.).
- Se possibile, testi le modifiche in un ambiente di pre-produzione. Esistono anche strumenti online per visualizzare queste modifiche.
- Si ricordi di cancellare la cache di PrestaShop dopo aver apportato qualsiasi modifica.
Esempio di.htaccess tipico in PrestaShop
<IfModule mod_rewrite.c>
RewriteEngine on
# Redirection vers HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# URL rewriting (section générée automatiquement)
# ~~start~~ Do not remove this comment...
RewriteRule ^fr/t-shirts/5-tshirt-bleu.html$ product.php?id_product=5 [QSA,L]
# ~~end~~
# Sécurité
<FilesMatch "\\.(tpl|ini|log|conf|sql)$">
Order Allow,Deny
Deny from all
</FilesMatch>
# Redirection temporaire vers maintenance
# (décommenter si nécessaire)
# RewriteCond %{REQUEST_URI} !^/maintenance.html$
# RewriteCond %{REMOTE_ADDR} !^123\\.456\\.789\\.000$
# RewriteRule ^.*$ /maintenance.html [R=302,L]
</IfModule>
Caso speciale: Multi-boutique e.htaccess
In modalità multi-negozio, PrestaShop può creare diversi blocchi.htaccess per ogni dominio o sottocartella. Deve fare ancora più attenzione alla coerenza delle regole se personalizza il file manualmente.