Comprendere e modificare il file .htaccess di PrestaShop

HelpCenter

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.html invece 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

  1. Esegua sempre un backup del file.htaccess prima della modifica.
  2. Non modifichi il blocco generato automaticamente da PrestaShop (# ~~start~~ ... # ~~end~~)
  3. Utilizzi un editor di testo affidabile (VS Code, Notepad++, ecc.).
  4. Se possibile, testi le modifiche in un ambiente di pre-produzione. Esistono anche strumenti online per visualizzare queste modifiche.
  5. 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.

⚠️ Questo articolo è stato tradotto da un programma di traduzione automatica.