.htaccess-uudelleenohjausgeneraattori
Luo 301- ja 302-ohjaukset .htaccess-tiedostoon tai Nginxiin, pakota HTTPS ja www, siirrä verkkotunnus ja korjaa loppukauttaviivat silmukka- ja ketjutarkistus.
Tee ensin varmuuskopio nykyisistä asetuksistasi ja testaa 302-ohjauksella ennen siirtymistä 301:een: selaimet tallentavat pysyvät uudelleenohjaukset välimuistiin.
Tarkistukset
Ongelmia ei löytynyt.
Näin käytät .htaccess-uudelleenohjausgeneraattoria
- Valitse Palvelin: Apache (.htaccess) tai Nginx, sitten Uudelleenohjauksen tyyppi: 301 – pysyvä tai 302 – tilapäinen.
- 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 oleviaRedirect 301 /a /b-rivejä. - Halutessasi kirjoita Verkkotunnuksesi (esimerkiksi
example.com), jolloin sivujen uudelleenohjaukset osoittavat suoraan lopulliseen osoitteeseen. - 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.
- 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.
- 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 verkkotunnuksesihttp://- 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.
Aiheeseen liittyvät työkalut
- Robots.txt-generaattori Luo kelvollinen robots.txt-tiedosto user agent -ryhmillä, Allow- ja Disallow-säännöillä, sivukartoilla ja crawl-delaylla sekä yleisten virheiden tarkistuksella.
- Hreflang-generaattori Luo hreflang-tagit monikielisille sivuille HTML-tageina, XML-sivukartan merkintöinä tai HTTP Link -otsakkeina ISO-koodien ja vastavuoroisuuden tarkistuksella.
- Meta-tagigeneraattori Ilmainen meta-tagigeneraattori otsikolle, meta descriptionille, canonical-URL:lle sekä robots- ja viewport-tageille pituustarkistuksin ja suojatulla HTML:llä.
- URL-koodaaja ja -dekooderi Ilmainen URL-koodaaja ja -dekooderi. Prosenttikoodaa kyselyparametreja tai kokonaisia URL-osoitteita, pura %XX-sekvenssit ja käsittele + välilyöntinä.