Reindirizza tutte le richieste a HTTPS se accedono ai file in / sicuro /

Autore:Lars Nyström
Aggiornato:27 mag 2025

Per impostare un reindirizzamento utilizzando mod_rewrite per Apache, segui questi passaggi:

  1. Abilitare il modulo di riscrittura:

    • Sui sistemi basati su RHEL (come CentOS o Fedora), assicurarsi che il modulo di riscrittura sia abilitato controllando se LoadModule rewrite_module modules/mod_rewrite.so è presente nel file di configurazione principale di Apache.
    • Sui sistemi basati su Debian (come Ubuntu), abilitarlo usando:
      sudo a2enmod rewrite
      
  2. Posizionare le regole di riscrittura:

    • Se stai configurando questo per un dominio specifico, aggiungi queste regole al tuo file di configurazione VirtualHost.
    • Per le configurazioni a sito singolo, inserirle nel file .htaccess.
  3. Aggiungere le seguenti direttive mod_rewrite:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/secure/(.*) 
RewriteRule ^/?(.*) https://www.example.com/secure/$1 [R=301,L]

Spiegazione:

  • RewriteEngine On: Attiva il modulo di riscrittura.
  • RewriteCond %{REQUEST_URI} ^/secure/(.*): questa condizione controlla se l'URI della richiesta inizia con /secure/. Il (.*) cattura qualsiasi percorso che segue /secure/.
  • RewriteRule ^/?(.*) https://www.example.com/secure/$1 [R=301,L]: questa regola reindirizza qualsiasi richiesta corrispondente alla condizione a https://www.example.com/secure/ seguita dal percorso acquisito. Le bandiere:
    • R=301: genera un reindirizzamento 301 (permanente).
    • L: Consente al motore di riscrittura di continuare l'elaborazione dopo il reindirizzamento.

Note:

  • Reindirizzamento temporaneo: sostituisci R=301 con R=302 per un reindirizzamento temporaneo.
  • Test: cancella la cache del tuo browser e prova ad accedere a /secure/ tramite HTTP e HTTPS per assicurarti che il reindirizzamento funzioni correttamente.
  • ServerName: Assicurarsi che la configurazione di VirtualHost imposti ServerName su www.example.com affinché il reindirizzamento funzioni correttamente.