Utilia

.htaccess generator preusmeravanja

Generiši 301 i 302 preusmeravanja za .htaccess ili Nginx, nametni HTTPS i www, premesti domen i popravi kose crte, uz proveru petlji i lanaca.

Server
Vrsta preusmeravanja
Kanonska adresa
Kosa crta na kraju
Premesti ceo domen

Prvo napravi rezervnu kopiju trenutne konfiguracije i testiraj sa 302 pre prelaska na 301: pregledači pamte trajna preusmeravanja.

Provere

Kako da koristiš .htaccess generator preusmeravanja

  1. Izaberi Server: Apache (.htaccess) ili Nginx, pa Vrsta preusmeravanja: 301 – trajno ili 302 – privremeno.
  2. U Preusmeravanja stranica upiši jedno preusmeravanje po redu: staru putanju, razmak, pa novi URL, na primer /stara-stranica.html /nova-stranica/. Rade i tabulator, zarez ili ->, a možeš da nalepiš i pune stare URL-ove ili postojeće redove Redirect 301 /a /b.
  3. Po želji upiši Tvoj domen (opciono) (na primer example.com) da preusmeravanja stranica vode pravo na konačnu adresu.
  4. Pod Kanonska adresa označi Nametni HTTPS i izaberi Nametni www, Ukloni www ili Ostavi www kakav jeste. Pod Kosa crta na kraju izaberi da li da se doda ili ukloni.
  5. Ako je ceo sajt premešten, popuni Premesti ceo domen sa Stari domen i Nova adresa (apsolutni URL), a Zadrži putanju ostavi označeno da svaka stranica stigne na svoj ekvivalent.
  6. Pročitaj Provere, pa Kopiraj ili Preuzmi pravila. Učitaj primer pokazuje kompletnu konfiguraciju.

Alat radi u tvom pregledaču i ništa što upišeš ne šalje se na server.

Kako rade generisana pravila

Za Apache alat piše mod_rewrite pravila, počevši jednim RewriteEngine On. Svaka stranica postaje RewriteRule čiji obrazac počinje sa ^/?, pa radi i u .htaccess fajlu (gde se početna kosa crta uklanja) i u <VirtualHost> bloku. Tačke, zagrade, plus i drugi znakovi regularnih izraza u tvojim putanjama se escapuju, a razmak postaje \x20. U novom URL-u se $ i % escapuju jer bi ih Apache pročitao kao povratne reference, a oznaka NE sprečava Apache da URL kodira drugi put.

RewriteRule nikada ne vidi query string. Kada stara adresa sadrži jedan, kao /product.php?id=42, alat dodaje red RewriteCond %{QUERY_STRING} ^id=42$ i oznaku QSD, pa se stari parametri odbacuju umesto da se kopiraju na novu stranicu.

Pravila su poređana tako da se izbegnu nepotrebni skokovi: prvo premeštanje domena, zatim preusmeravanja stranica, zatim kosa crta na kraju, pa HTTPS i www. HTTPS i www rešava jedno pravilo, pa http://www.example.com ide na https://example.com jednim preusmeravanjem. Kada je tvoj domen poznat, preusmeravanja stranica i kose crte već vode na konačnu HTTPS adresu.

Za Nginx se HTTPS, www i premeštanje domena pretvaraju u zasebne server blokove sa return 301, a preusmeravanja stranica u rewrite redove koje lepiš unutar glavnog server bloka. Izvršavaju se pre poklapanja sa location, pa pobeđuju i pravilo za kosu crtu na kraju. Znak ? na kraju cilja sprečava Nginx da dodaje stari query string kada to ne treba.

Šta se proverava

  • Stranica koja preusmerava na samu sebe ili dve stranice koje se međusobno preusmeravaju (petlja koja se završava porukom „previše preusmeravanja“).
  • Lanci kao A → B → C: usmeri A pravo na C, jer svaki dodatni skok usporava posetioce i troši budžet indeksiranja.
  • Ista stara adresa navedena dvaput, gde bi važilo samo prvo pravilo.
  • Cilj koji nije ni apsolutni URL ni putanja koja počinje sa /, ili cilj sa http:// ili pogrešnim www na tvom domenu.
  • Podešavanje kose crte na kraju koje bi ponovo preusmerilo cilj ili ga vratilo na izvor.

Česta pitanja

Da li da koristim 301 ili 302?

Koristi 301 kada je premeštanje trajno: pretraživači prenose signale stare stranice na novu i ažuriraju indeks. Koristi 302 za privremene promene kao što su održavanje ili kratka kampanja. Pregledači pamte 301 preusmeravanja, pa prvo testiraj sa 302.

Gde da stavim .htaccess fajl?

U korenski direktorijum sajta (često public_html ili www), pored index.php ili index.html. Preuzeti fajl se zove htaccess.txt; preimenuj ga u .htaccess ili nalepi pravila na vrh postojećeg fajla. Sačuvaj rezervnu kopiju originala.

Zašto RewriteRule umesto Redirect 301?

Redovi Redirect potiču iz mod_alias i izvršavaju se u drugoj fazi nego RewriteRule. Mešanje oba u jednom fajlu otežava predviđanje redosleda. Samo mod_rewrite drži svako pravilo u jednom predvidivom nizu i omogućava poklapanje query stringova.

Sajt prikazuje „previše preusmeravanja“ posle nametanja HTTPS-a. Zašto?

Iza load balancera, CDN-a ili proksija koji završava HTTPS, Apache vidi svaki zahtev kao običan HTTP, pa je %{HTTPS} uvek isključen. U tom slučaju proveri prosleđeno zaglavlje, na primer RewriteCond %{HTTP:X-Forwarded-Proto} !https, ili uključi preusmeravanje u CDN-u.

Da li ovaj alat menja moj server?

Ne. Samo generiše tekst u tvom pregledaču. Ništa se ne šalje nigde, a ti odlučuješ gde i kako se pravila instaliraju.