Utilia

.htaccess nukreipimo generatorius

Sugeneruok 301 ir 302 nukreipimus .htaccess ar Nginx, priverstinį HTTPS ir www, domeno perkėlimą bei pabaigos brūkšnio taisykles su ciklų ir grandinių patikra.

Serveris
Nukreipimo tipas
Kanoninis adresas
Pabaigos pasvirasis brūkšnys
Perkelti visą domeną

Pirmiausia padaryk dabartinės konfigūracijos atsarginę kopiją ir išbandyk su 302, prieš pereinant prie 301: naršyklės išsaugo nuolatinius nukreipimus talpykloje.

Patikros

Kaip naudoti .htaccess nukreipimo generatorių

  1. Pasirink Serveris: Apache (.htaccess) arba Nginx, tada Nukreipimo tipas: 301 – nuolatinis arba 302 – laikinas.
  2. Skiltyje Puslapių nukreipimai parašyk po vieną nukreipimą eilutėje: senas kelias, tarpas, tada naujas adresas, pavyzdžiui, /senas-puslapis.html /naujas-puslapis/. Tinka ir tabuliacija, kablelis ar ->, taip pat gali įklijuoti pilnus senus adresus arba esamas Redirect 301 /a /b eilutes.
  3. Jei nori, įvesk Tavo domenas (pavyzdžiui, example.com), kad puslapių nukreipimai eitų tiesiai į galutinį adresą.
  4. Skiltyje Kanoninis adresas pažymėk Priversti HTTPS ir pasirink Priversti www, Pašalinti www arba Palikti www kaip yra. Skiltyje Pabaigos pasvirasis brūkšnys pasirink, ar jį pridėti, ar pašalinti.
  5. Jei persikėlė visa svetainė, užpildyk Perkelti visą domeną laukus Senas domenas ir Naujas adresas (absoliutus URL) ir palik pažymėtą Išlaikyti kelią, kad kiekvienas puslapis atsidurtų savo atitikmenyje.
  6. Perskaityk Patikros, tada Kopijuoti arba Atsisiųsti taisykles. Su Įkelti pavyzdį pamatysi pilną konfigūraciją.

Įrankis tik sukuria tekstą tavo naršyklėje: nieko, ką įvedi, nesiunčiame į serverį.

Kaip veikia sugeneruotos taisyklės

Apache serveriui įrankis rašo mod_rewrite taisykles, kurių pradžioje yra vienas RewriteEngine On. Kiekvienas puslapis tampa RewriteRule, kurios šablonas prasideda ^/?, todėl ji veikia ir .htaccess faile (kur pradinis pasvirasis brūkšnys pašalinamas), ir <VirtualHost> bloke. Taškai, skliaustai, pliuso ženklai ir kiti reguliariųjų išraiškų simboliai tavo keliuose ekranuojami, o tarpas tampa \x20. Naujame adrese $ ir % ekranuojami, nes Apache juos skaitytų kaip atgalines nuorodas, o NE vėliava neleidžia Apache adreso koduoti antrą kartą.

RewriteRule niekada nemato užklausos eilutės. Kai senas adresas ją turi, pavyzdžiui, /product.php?id=42, įrankis prideda eilutę RewriteCond %{QUERY_STRING} ^id=42$ ir vėliavą QSD, kad seni parametrai būtų atmesti, o ne nukopijuoti į naują puslapį.

Taisyklės išdėstytos taip, kad būtų išvengta nereikalingų šuolių: pirmiausia domeno perkėlimas, tada puslapių nukreipimai, tada pabaigos pasvirasis brūkšnys, galiausiai HTTPS ir www. HTTPS ir www tvarko viena taisyklė, todėl http://www.example.com į https://example.com nukreipiamas vienu žingsniu. Kai tavo domenas žinomas, puslapių ir pasvirojo brūkšnio nukreipimai jau rodo į galutinį HTTPS adresą.

Nginx atveju HTTPS, www ir domeno perkėlimai tampa atskirais server blokais su return 301, o puslapių nukreipimai – rewrite eilutėmis, kurias reikia įklijuoti į pagrindinį server bloką. Jos vykdomos prieš location atitikimą, todėl įveikia ir pabaigos pasvirojo brūkšnio taisyklę. ? tikslo gale neleidžia Nginx pridėti senos užklausos eilutės, kai to nereikia.

Atliekamos patikros

  • Puslapis, nukreipiamas į save, arba du puslapiai, nukreipiantys vienas į kitą (ciklas, kuris baigiasi klaida „per daug nukreipimų“).
  • Grandinės, pavyzdžiui, A → B → C: nukreipk A tiesiai į C, nes kiekvienas papildomas šuolis lėtina lankytojus ir eikvoja paieškos roboto resursus.
  • Tas pats senas adresas, išvardytas du kartus, kai taikoma tik pirmoji taisyklė.
  • Tikslas, kuris nėra nei absoliutus adresas, nei kelias, prasidedantis /, arba http:// ar neteisingo www tikslas tavo paties domene.
  • Pabaigos pasvirojo brūkšnio nustatymas, kuris nukreiptų tikslą dar kartą arba grąžintų jį į šaltinį.

Dažnai užduodami klausimai

Ar naudoti 301, ar 302?

Naudok 301, kai perkėlimas nuolatinis: paieškos sistemos perkelia seno puslapio signalus į naująjį ir atnaujina savo indeksą. 302 naudok laikiniems pakeitimams, pavyzdžiui, techninei priežiūrai ar trumpai kampanijai. Naršyklės 301 nukreipimus išsaugo talpykloje, todėl pirmiausia išbandyk su 302.

Kur dėti .htaccess failą?

Svetainės šakniniame aplanke (dažnai public_html arba www), šalia index.php ar index.html. Atsisiųstas failas vadinasi htaccess.txt; pervadink jį į .htaccess arba įklijuok taisykles esamo failo pradžioje. Pasilik originalo atsarginę kopiją.

Kodėl naudojamas RewriteRule, o ne Redirect 301?

Redirect eilutės priklauso mod_alias ir vykdomos kitoje fazėje nei RewriteRule. Sumaišius abi viename faile, tvarką sunku nuspėti. Naudojant tik mod_rewrite, visos taisyklės eina viena nuspėjama seka ir galima atitikti užklausos eilutes.

Priverstinai įjungus HTTPS mano svetainė rodo „per daug nukreipimų“. Kodėl?

Už apkrovos balansuotojo, CDN ar tarpinio serverio, kuris užbaigia HTTPS ryšį, Apache kiekvieną užklausą mato kaip paprastą HTTP, todėl %{HTTPS} visada išjungtas. Tokiu atveju tikrink persiųstą antraštę, pavyzdžiui, RewriteCond %{HTTP:X-Forwarded-Proto} !https, arba įjunkite nukreipimą CDN.

Ar šis įrankis keičia mano serverį?

Ne. Jis tik sukuria tekstą tavo naršyklėje. Niekas niekur nesiunčiama, o tu pats sprendi, kur ir kaip taisyklės įdiegiamos.