Utilia

.htaccess generator preusmjeravanja

Generiraj 301 i 302 preusmjeravanja za .htaccess ili Nginx, prisili HTTPS i www, premjesti domenu i popravi kose crte, uz provjeru petlji i lanaca.

Poslužitelj
Vrsta preusmjeravanja
Kanonska adresa
Kosa crta na kraju
Premjesti cijelu domenu

Najprije napravi sigurnosnu kopiju trenutne konfiguracije i testiraj s 302 prije prelaska na 301: preglednici pohranjuju trajna preusmjeravanja u predmemoriju.

Provjere

Kako koristiti .htaccess generator preusmjeravanja

  1. Odaberi Poslužitelj: Apache (.htaccess) ili Nginx, zatim Vrsta preusmjeravanja: 301 – trajno ili 302 – privremeno.
  2. U Preusmjeravanja stranica napiši po jedno preusmjeravanje u retku: staru putanju, razmak, pa novi URL, na primjer /stara-stranica.html /nova-stranica/. Radi i tabulator, zarez ili ->, a možeš zalijepiti i pune stare URL-ove ili postojeće retke Redirect 301 /a /b.
  3. Po želji upiši Tvoja domena (neobavezno) (na primjer example.com) da preusmjeravanja stranica idu ravno na konačnu adresu.
  4. Pod Kanonska adresa označi Prisili HTTPS i odaberi Prisili www, Ukloni www ili Ostavi www kakav jest. Pod Kosa crta na kraju odaberi hoće li se dodati ili ukloniti.
  5. Ako se cijela stranica preselila, ispuni Premjesti cijelu domenu sa Stara domena i Nova adresa (apsolutni URL) te ostavi označeno Zadrži putanju da svaka stranica završi na svom ekvivalentu.
  6. Pročitaj Provjere, zatim Kopiraj ili Preuzmi pravila. Učitaj primjer prikazuje potpunu konfiguraciju.

Alat radi u tvom pregledniku. Ništa što upišeš ne šalje se na poslužitelj.

Kako rade generirana pravila

Za Apache alat piše pravila mod_rewrite, počevši jednim RewriteEngine On. Svaka stranica postaje RewriteRule čiji uzorak počinje s ^/?, pa radi i u datoteci .htaccess (gdje se početna kosa crta uklanja) i u bloku <VirtualHost>. Točke, zagrade, plusevi i drugi znakovi regularnih izraza u tvojim putanjama se escapiraju, a razmak postaje \x20. U novom URL-u $ i % se escapiraju jer bi ih Apache čitao kao povratne reference, a zastavica NE sprječava Apache da URL kodira drugi put.

RewriteRule nikad ne vidi upitni niz. Kad stara adresa sadrži jedan, poput /product.php?id=42, alat dodaje redak RewriteCond %{QUERY_STRING} ^id=42$ i zastavicu QSD, pa se stari parametri odbacuju umjesto da se kopiraju na novu stranicu.

Pravila su poredana tako da se izbjegnu nepotrebni skokovi: najprije premještanje domene, zatim preusmjeravanja stranica, pa kosa crta na kraju, pa HTTPS i www. HTTPS i www rješava jedno pravilo, pa http://www.example.com ide na https://example.com jednim preusmjeravanjem. Kad je tvoja domena poznata, preusmjeravanja stranica i kosih crta već pokazuju na konačnu HTTPS adresu.

Za Nginx se HTTPS, www i premještanje domene pretvaraju u zasebne blokove server s return 301, a preusmjeravanja stranica u retke rewrite koje zalijepiš unutar glavnog bloka server. Izvode se prije odabira lokacije pa pobjeđuju i pravilo kose crte na kraju. Znak ? na kraju cilja sprječava Nginx da doda stari upitni niz kad to ne treba.

Što se provjerava

  • Stranica koja preusmjerava na samu sebe ili dvije stranice koje preusmjeravaju jedna na drugu (petlja koja završava porukom „previše preusmjeravanja“).
  • Lanci poput A → B → C: usmjeri A ravno na C, jer svaki dodatni skok usporava posjetitelje i troši proračun indeksiranja.
  • Ista stara adresa navedena dvaput, pri čemu bi vrijedilo samo prvo pravilo.
  • Cilj koji nije ni apsolutni URL ni putanja koja počinje s /, ili cilj http:// ili s pogrešnim www na tvojoj domeni.
  • Postavka kose crte na kraju koja bi cilj ponovno preusmjerila ili ga vratila na izvor.

Česta pitanja

Trebam li koristiti 301 ili 302?

Koristi 301 kad je premještanje trajno: tražilice prenose signale stare stranice na novu i ažuriraju svoj indeks. Koristi 302 za privremene promjene poput održavanja ili kratke kampanje. Preglednici pohranjuju 301 preusmjeravanja u predmemoriju, pa najprije testiraj s 302.

Gdje stavljam datoteku .htaccess?

U korijensku mapu stranice (često public_html ili www), pored index.php ili index.html. Preuzeta datoteka zove se htaccess.txt; preimenuj je u .htaccess ili zalijepi pravila na vrh postojeće datoteke. Zadrži sigurnosnu kopiju izvornika.

Zašto RewriteRule umjesto Redirect 301?

Retci Redirect dolaze iz mod_alias i izvode se u drukčijoj fazi od RewriteRule. Miješanje oba u jednoj datoteci otežava predviđanje redoslijeda. Korištenje samo mod_rewrite drži svako pravilo u jednom predvidljivom nizu i omogućuje podudaranje upitnih nizova.

Moja stranica pokazuje „previše preusmjeravanja“ nakon prisile HTTPS-a. Zašto?

Iza balansera opterećenja, CDN-a ili proxyja koji završava HTTPS, Apache vidi svaki zahtjev kao običan HTTP pa je %{HTTPS} uvijek isključen. U tom slučaju umjesto toga provjeri proslijeđeno zaglavlje, na primjer RewriteCond %{HTTP:X-Forwarded-Proto} !https, ili uključi preusmjeravanje u CDN-u.

Mijenja li ovaj alat moj poslužitelj?

Ne. Samo generira tekst u tvom pregledniku. Ništa se nikamo ne šalje, a ti kontroliraš gdje i kako se pravila instaliraju.