Generator de redirecționări .htaccess
Generează redirecționări 301 și 302 pentru .htaccess sau Nginx, forțează HTTPS și www, mută un domeniu, cu verificarea buclelor și a lanțurilor.
Fă mai întâi o copie de rezervă a configurației curente și testează cu 302 înainte să treci la 301: browserele rețin în cache redirecționările permanente.
Verificări
Nu am găsit probleme.
Cum folosești generatorul de redirecționări .htaccess
- Alege Server: Apache (.htaccess) sau Nginx, apoi Tip de redirecționare: 301 – permanentă sau 302 – temporară.
- La Redirecționări de pagini (câte una pe rând: calea veche, apoi URL-ul nou), scrie câte o redirecționare pe rând: calea veche, un spațiu, apoi URL-ul nou, de exemplu
/pagina-veche.html /pagina-noua/. Merg și un tab, o virgulă sau->, și poți lipi URL-uri vechi complete sau linii existente de tipRedirect 301 /a /b. - Dacă vrei, introdu Domeniul tău (opțional) (de exemplu
example.com), ca redirecționările de pagini să ducă direct la adresa finală. - La Adresa canonică, bifează Forțează HTTPS și alege Forțează www, Elimină www sau Lasă www cum este. La Slash final, alege dacă îl adaugi sau îl elimini.
- Dacă tot site-ul s-a mutat, completează Mută tot domeniul cu Domeniul vechi și Adresa nouă (URL absolut) și lasă bifat Păstrează calea, ca fiecare pagină să ajungă la echivalentul ei.
- Citește Verificări, apoi folosește Copiază sau Descarcă pentru reguli. Încarcă un exemplu arată o configurație completă.
Totul se întâmplă în browserul tău: domeniile și adresele tale nu sunt trimise către un server.
Cum funcționează regulile generate
Pentru Apache, instrumentul scrie reguli mod_rewrite, începând cu un singur RewriteEngine On. Fiecare pagină devine un RewriteRule al cărui model începe cu ^/?, deci funcționează atât într-un fișier .htaccess (unde slash-ul inițial este eliminat), cât și într-un bloc <VirtualHost>. Punctele, parantezele, semnele plus și alte caractere de expresie regulată din căile tale sunt escapate, iar un spațiu devine \x20. În URL-ul nou, $ și % sunt escapate, fiindcă Apache le-ar citi ca referințe înapoi, iar flag-ul NE împiedică Apache să codifice URL-ul a doua oară.
Un RewriteRule nu vede niciodată șirul de interogare. Când o adresă veche conține unul, cum ar fi /produs.php?id=42, instrumentul adaugă o linie RewriteCond %{QUERY_STRING} ^id=42$ și flag-ul QSD, astfel încât parametrii vechi sunt eliminați în loc să fie copiați pe pagina nouă.
Regulile sunt ordonate ca să evite salturile inutile: mai întâi mutarea domeniului, apoi redirecționările de pagini, apoi slash-ul final, apoi HTTPS și www. HTTPS și www sunt tratate de o singură regulă, deci http://www.example.com ajunge la https://example.com printr-o singură redirecționare. Când domeniul tău este cunoscut, redirecționările de pagini și de slash duc deja la adresa finală HTTPS.
Pentru Nginx, HTTPS, www și mutările de domeniu devin blocuri server separate, cu return 301, iar redirecționările de pagini devin linii rewrite, pe care le lipești în blocul tău server principal. Ele rulează înainte de potrivirea locațiilor, deci au prioritate și față de regula slash-ului final. Un ? la sfârșitul unei ținte împiedică Nginx să adauge șirul de interogare vechi atunci când nu trebuie.
Verificări efectuate
- O pagină care se redirecționează către sine sau două pagini care se redirecționează una către alta (o buclă ce se termină cu „too many redirects”).
- Lanțuri precum A → B → C: indică A direct către C, fiindcă fiecare salt în plus încetinește vizitatorii și consumă din bugetul de crawl.
- Aceeași adresă veche listată de două ori, caz în care s-ar aplica doar prima regulă.
- O țintă care nu este nici URL absolut, nici o cale ce începe cu
/, sau o țintăhttp://ori cu www greșit pe propriul tău domeniu. - O setare de slash final care ar redirecționa o țintă încă o dată sau ar trimite-o înapoi la sursă.
Întrebări frecvente
Să folosesc 301 sau 302?
Folosește 301 când mutarea este permanentă: motoarele de căutare transferă semnalele paginii vechi către cea nouă și își actualizează indexul. Folosește 302 pentru schimbări temporare, precum mentenanța sau o campanie scurtă. Browserele rețin în cache redirecționările 301, deci testează mai întâi cu 302.
Unde pun fișierul .htaccess?
În folderul rădăcină al site-ului (adesea public_html sau www), lângă index.php sau index.html. Fișierul descărcat se numește htaccess.txt; redenumește-l în .htaccess sau lipește regulile la începutul fișierului tău existent. Păstrează o copie de rezervă a originalului.
De ce RewriteRule și nu Redirect 301?
Liniile Redirect vin din mod_alias și rulează într-o altă fază decât RewriteRule. Dacă le amesteci în același fișier, ordinea devine greu de prevăzut. Folosind doar mod_rewrite, fiecare regulă rămâne într-o secvență previzibilă și se pot potrivi și șirurile de interogare.
Site-ul meu arată „too many redirects” după ce am forțat HTTPS. De ce?
În spatele unui load balancer, al unui CDN sau al unui proxy care încheie conexiunea HTTPS, Apache vede fiecare cerere ca pe una HTTP simplă, deci %{HTTPS} este mereu dezactivat. În acest caz, testează în schimb antetul transmis, de exemplu RewriteCond %{HTTP:X-Forwarded-Proto} !https, sau activează redirecționarea în CDN.
Îmi modifică acest instrument serverul?
Nu. Generează doar text, în browserul tău. Nimic nu este trimis nicăieri, iar tu decizi unde și cum instalezi regulile.
Instrumente similare
- Generator robots.txt Creează un fișier robots.txt valid, cu grupuri user-agent, reguli Allow și Disallow, sitemap-uri și crawl-delay, cu verificarea celor mai frecvente greșeli.
- Generator de etichete hreflang Generează etichete hreflang pentru pagini multilingve: HTML link, sitemap XML sau antet HTTP Link, cu verificarea codurilor ISO și a reciprocității.
- Generator de meta taguri Generator gratuit de meta taguri pentru titlu, meta descriere, URL canonic, robots și viewport, cu verificarea lungimii și HTML escapat corect.
- Codificare și decodare URL Codificare și decodare URL gratuită. Codifică procentual parametri sau URL-uri complete, decodează secvențe %XX și tratează + ca spațiu, în browserul tău.