Utilia

.htaccess-uudelleenohjausgeneraattori

Luo 301- ja 302-ohjaukset .htaccess-tiedostoon tai Nginxiin, pakota HTTPS ja www, siirrä verkkotunnus ja korjaa loppukauttaviivat silmukka- ja ketjutarkistus.

Palvelin
Uudelleenohjauksen tyyppi
Ensisijainen osoite
Loppukauttaviiva
Siirrä koko verkkotunnus

Tee ensin varmuuskopio nykyisistä asetuksistasi ja testaa 302-ohjauksella ennen siirtymistä 301:een: selaimet tallentavat pysyvät uudelleenohjaukset välimuistiin.

Tarkistukset

Näin käytät .htaccess-uudelleenohjausgeneraattoria

  1. Valitse Palvelin: Apache (.htaccess) tai Nginx, sitten Uudelleenohjauksen tyyppi: 301 – pysyvä tai 302 – tilapäinen.
  2. Kirjoita kohtaan Sivujen uudelleenohjaukset yksi uudelleenohjaus per rivi: vanha polku, välilyönti ja uusi URL, esimerkiksi /vanha-sivu.html /uusi-sivu/. Myös sarkain, pilkku tai -> kelpaa, ja voit liittää kokonaisia vanhoja URL-osoitteita tai olemassa olevia Redirect 301 /a /b -rivejä.
  3. Halutessasi kirjoita Verkkotunnuksesi (esimerkiksi example.com), jolloin sivujen uudelleenohjaukset osoittavat suoraan lopulliseen osoitteeseen.
  4. Valitse kohdassa Ensisijainen osoite Pakota HTTPS ja sen lisäksi Pakota www, Poista www tai Jätä www ennalleen. Kohdassa Loppukauttaviiva valitse, lisätäänkö vai poistetaanko se.
  5. Jos koko sivusto on siirtynyt, täytä Siirrä koko verkkotunnus -osion Vanha verkkotunnus ja Uusi osoite ja pidä Säilytä polku valittuna, jotta jokainen sivu päätyy vastaavalle sivulle.
  6. Lue Tarkistukset, sitten Kopioi tai Lataa säännöt. Lataa esimerkki näyttää täydellisen asetuskokonaisuuden.

Miten luodut säännöt toimivat

Apachelle työkalu kirjoittaa mod_rewrite-sääntöjä, jotka alkavat yhdellä RewriteEngine On -rivillä. Jokaisesta sivusta tulee RewriteRule, jonka kuvio alkaa merkinnällä ^/?, joten se toimii sekä .htaccess-tiedostossa (jossa alkukauttaviiva poistetaan) että <VirtualHost>-lohkossa. Poluissasi olevat pisteet, hakasulkeet, plusmerkit ja muut säännöllisten lausekkeiden merkit koodataan suojatuiksi, ja välilyönti muuttuu muotoon \x20. Uudessa URL-osoitteessa $ ja % suojataan, koska Apache tulkitsisi ne takaisinviittauksiksi, ja NE-lippu estää Apachea koodaamasta URL-osoitetta toiseen kertaan.

RewriteRule ei koskaan näe kyselymerkkijonoa. Kun vanha osoite sisältää sellaisen, kuten /tuote.php?id=42, työkalu lisää rivin RewriteCond %{QUERY_STRING} ^id=42$ ja QSD-lipun, jolloin vanhat parametrit pudotetaan sen sijaan, että ne kopioitaisiin uudelle sivulle.

Säännöt järjestetään turhien hyppyjen välttämiseksi: ensin verkkotunnuksen siirto, sitten sivujen uudelleenohjaukset, sitten loppukauttaviiva ja lopuksi HTTPS ja www. HTTPS:stä ja www:stä huolehtii yksi sääntö, joten http://www.example.com ohjautuu osoitteeseen https://example.com yhdellä uudelleenohjauksella. Kun verkkotunnuksesi on tiedossa, sivujen ja kauttaviivan uudelleenohjaukset osoittavat jo lopulliseen HTTPS-osoitteeseen.

Nginxissä HTTPS, www ja verkkotunnuksen siirrot muuttuvat erillisiksi server-lohkoiksi, joissa on return 301, ja sivujen uudelleenohjauksista tulee rewrite-rivejä, jotka liität pääasiallisen server-lohkosi sisään. Ne suoritetaan ennen location-vastaavuutta, joten ne ohittavat myös loppukauttaviivan säännön. Kohteen lopussa oleva ? estää Nginxiä lisäämästä vanhaa kyselymerkkijonoa, kun sitä ei haluta.

Suoritettavat tarkistukset

  • Sivu, joka ohjaa itseensä, tai kaksi sivua, jotka ohjaavat toisiinsa (silmukka, joka päättyy virheeseen ”liian monta uudelleenohjausta”).
  • Ketjut, kuten A → B → C: ohjaa A suoraan kohteeseen C, koska jokainen ylimääräinen hyppy hidastaa vierailijoita ja haaskaa indeksointibudjettia.
  • Sama vanha osoite listattuna kahdesti, jolloin vain ensimmäinen sääntö olisi voimassa.
  • Kohde, joka ei ole absoluuttinen URL eikä merkillä / alkava polku, tai oman verkkotunnuksesi http://- tai väärän www-muodon kohde.
  • Loppukauttaviivan asetus, joka ohjaisi kohteen uudelleen tai takaisin lähteeseensä.

Usein kysytyt kysymykset

Pitäisikö käyttää 301:tä vai 302:ta?

Käytä 301:tä, kun siirto on pysyvä: hakukoneet siirtävät vanhan sivun signaalit uudelle ja päivittävät hakemistonsa. Käytä 302:ta tilapäisiin muutoksiin, kuten huoltoon tai lyhyeen kampanjaan. Selaimet tallentavat 301-uudelleenohjaukset välimuistiin, joten testaa ensin 302:lla.

Minne .htaccess-tiedosto sijoitetaan?

Sivuston juurikansioon (usein public_html tai www) index.php- tai index.html-tiedoston viereen. Ladattu tiedosto on nimeltään htaccess.txt; nimeä se uudelleen .htaccess-muotoon tai liitä säännöt olemassa olevan tiedostosi alkuun. Säilytä alkuperäisestä varmuuskopio.

Miksi käyttää RewriteRulea Redirect 301:n sijaan?

Redirect-rivit tulevat mod_alias-moduulista ja suoritetaan eri vaiheessa kuin RewriteRule. Molempien sekoittaminen samassa tiedostossa tekee järjestyksestä vaikeasti ennustettavan. Pelkän mod_rewrite-moduulin käyttö pitää kaikki säännöt yhdessä ennustettavassa jonossa ja mahdollistaa kyselymerkkijonojen vertailun.

Sivustoni näyttää HTTPS:n pakottamisen jälkeen ”liian monta uudelleenohjausta”. Miksi?

Kuormantasaajan, CDN:n tai välityspalvelimen takana, joka päättää HTTPS-yhteyden, Apache näkee jokaisen pyynnön tavallisena HTTP-pyyntönä, joten %{HTTPS} on aina pois päältä. Testaa silloin välitetty otsake, esimerkiksi RewriteCond %{HTTP:X-Forwarded-Proto} !https, tai ota uudelleenohjaus käyttöön CDN:ssä.

Muuttaako tämä työkalu palvelintani?

Ei. Se vain luo tekstiä selaimessasi. Mitään ei lähetetä minnekään, ja päätät itse, minne ja miten säännöt asennetaan.