Generatore di Redirect Htaccess

Ogni volta che migri un blog, cambi il tuo schema URL o consolidi vecchie pagine, il .htaccess di Apache si occupa della maggior parte della pulizia. Questo generatore trasforma una semplice mappatura sorgente → destinazione nelle corrette direttive RewriteRule con i giusti flag, pronte per essere inserite nel file .htaccess del sito.

Come generare regole di redirect

  1. 1

    Scegli il tipo di redirect

    301 permanente per spostamenti sicuri per SEO, 302 temporaneo per test A/B e redirect stagionali.

  2. 2

    Inserisci sorgente e destinazione

    Percorsi esatti o pattern regex: il percorso vecchio diventa il pattern RewriteRule e il nuovo URL la destinazione del redirect.

  3. 3

    Controlla i flag

    Ogni regola riceve automaticamente il flag corretto, `[R=301,L]` o `[R=302,L]`, così il blocco funziona subito con mod_rewrite.

  4. 4

    Copia le direttive

    Il blocco generato va all'interno della sezione `<IfModule mod_rewrite.c>` di .htaccess.

direttive mod_rewrite vs mod_alias

Apache offre due moduli per i redirect. Scegli in base alla complessità della regola.

Guida alla decisione

Requisito Usa Esempio
URL vecchio esatto → URL nuovo esatto Redirect Redirect 301 /old /new
Prefisso jolly RedirectMatch RedirectMatch 301 ^/blog/(.*)$ /articles/$1
Corrispondenza della query string RewriteRule Vedi sotto
Forza HTTPS RewriteRule RewriteCond %{HTTPS} off + regola
Condizionale (browser, cookie) RewriteRule Con RewriteCond

Esempio: forza HTTPS con www

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Esempio: sposta /blog/post-123 a /articles/post-123

RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [L,R=301]

Flag che vedrai

  • L, ultimo, non continuare a elaborare ulteriori regole.
  • R=301 o R=302, redirect con quel codice di stato.
  • NC, non sensibile al maiuscolo/minuscolo.
  • QSA, aggiungi la query string originale al nuovo URL.
  • NE, non ricodificare i caratteri speciali nella destinazione.

Errori comuni

  • Dimenticare RewriteEngine On, senza di esso nessuna RewriteRule ha effetto.
  • Usare 302 per default, Google lo tratta come temporaneo, quindi l’URL vecchio continua a posizionarsi.
  • Redirect concatenati (vecchio → intermedio → finale), punta sempre a un solo salto; ogni salto extra perde equity di link e aggiunge latenza.

Domande frequenti

Usa 301 per spostamenti permanenti: migrazione del sito, cambio dello slug URL, aggiornamento HTTPS. Usa 302 solo per situazioni temporanee, come il reindirizzamento a una pagina di manutenzione o un A/B split. I motori di ricerca trasferiscono segnali di ranking su 301, non in modo affidabile su 302.

La causa più comune è dimenticare la barra iniziale nel pattern. In RewriteRule, il pattern corrisponde al percorso senza la barra iniziale (es. ^blog/). In Redirect (mod_alias), il pattern inizia con una barra (/blog). Non mescolare le due convenzioni.

Sì, usa RewriteCond %{QUERY_STRING} ^id=123$ prima di una RewriteRule. Il Redirect semplice non legge la query string; solo RewriteRule può corrispondere su di essa.

Sì, alla richiesta successiva, Apache legge nuovamente .htaccess per ogni richiesta. Non è necessario riavviare il server. Se non succede nulla, controlla che AllowOverride All sia impostato nel vhost per la directory.

Strumenti correlati

Strumento disponibile in altre lingue