Utilia

.htaccess endurvísanir (301)

Búðu til 301 og 302 endurvísanir fyrir .htaccess eða Nginx, þvingaðu HTTPS og www, fluttu lén og lagaðu skástrik, með athugun á lykkjum og keðjum.

Netþjónn
Tegund endurvísunar
Aðalslóð (canonical)
Skástrik í lokin
Flytja allt lénið

Taktu fyrst afrit af núverandi stillingum og prófaðu með 302 áður en þú skiptir í 301: vafrar geyma varanlegar endurvísanir í skyndiminni.

Athuganir

Hvernig á að nota .htaccess endurvísanaframleiðandann

  1. Veldu Netþjónn: Apache (.htaccess) eða Nginx, og síðan Tegund endurvísunar: 301 – varanleg eða 302 – tímabundin.
  2. Í Endurvísanir síðna (ein á línu: gömul slóð, svo ný vefslóð) skaltu skrifa eina endurvísun á hverja línu: gömlu slóðina, bil og nýju vefslóðina, til dæmis /gomul-sida.html /ny-sida/. Tab, komma eða -> virkar einnig, og þú getur límt inn fullar gamlar vefslóðir eða núverandi Redirect 301 /a /b línur.
  3. Sláðu eftir atvikum inn Lénið þitt (valfrjálst) (til dæmis example.com) svo endurvísanir síðna vísi beint á endanlega slóð.
  4. Undir Aðalslóð (canonical) skaltu haka við Þvinga HTTPS og velja Þvinga www, Fjarlægja www eða Láta www vera eins og það er. Undir Skástrik í lokin skaltu velja hvort bæta eigi því við eða fjarlægja.
  5. Ef allt vefsvæðið flutti skaltu fylla út Flytja allt lénið með Gamla lénið og Ný slóð (heil vefslóð) og hafa Halda slóðinni hakað svo hver síða lendi á sinni samsvarandi.
  6. Lestu Athuganir, og Afrita eða Sækja síðan reglurnar. Notaðu Hlaða dæmi til að sjá heildarstillingu.

Hvernig búnar reglur virka

Fyrir Apache skrifar verkfærið mod_rewrite reglur, sem byrja á einu RewriteEngine On. Hver síða verður að RewriteRule þar sem mynstrið byrjar á ^/?, svo það virkar bæði í .htaccess skrá (þar sem upphafsskástrikið er fjarlægt) og í <VirtualHost> blokk. Punktar, hornklofar, plúsmerki og aðrir stafir reglulegra segða í slóðunum þínum eru umkóðaðir og bil verður að \x20. Í nýju vefslóðinni eru $ og % umkóðuð því Apache læsi þau sem bakvísanir, og NE flaggið kemur í veg fyrir að Apache kóði slóðina í annað sinn.

RewriteRule sér aldrei fyrirspurnarstrenginn. Þegar gömul slóð inniheldur slíkan, eins og /product.php?id=42, bætir verkfærið við RewriteCond %{QUERY_STRING} ^id=42$ línu og QSD flagginu, svo gömlu stikarnir falla niður í stað þess að vera afritaðir á nýju síðuna.

Reglunum er raðað til að forðast óþarfa stökk: lénaflutningur fyrst, svo endurvísanir síðna, svo skástrik í lokin, og loks HTTPS og www. HTTPS og www eru meðhöndluð með einni reglu, svo http://www.example.com fer á https://example.com í einni endurvísun. Þegar lénið þitt er þekkt vísa endurvísanir síðna og skástrika þegar á endanlega HTTPS slóð.

Fyrir Nginx verða HTTPS, www og lénaflutningar að aðskildum server blokkum með return 301, og endurvísanir síðna verða að rewrite línum sem þú límir inn í aðal server blokkina þína. Þær keyra áður en location er pöruð, svo þær ganga líka framar reglunni um skástrik í lokin. ? aftast í áfangastað kemur í veg fyrir að Nginx bæti gamla fyrirspurnarstrengnum við þegar það á ekki að gera það.

Athuganir sem eru framkvæmdar

  • Síða sem vísar á sjálfa sig, eða tvær síður sem vísa hvor á aðra (lykkja sem endar í „too many redirects“).
  • Keðjur eins og A → B → C: láttu A vísa beint á C, því hvert aukastökk hægir á gestum og sóar skriðkvóta.
  • Sama gamla slóðin skráð tvisvar, þar sem aðeins fyrsta reglan myndi gilda.
  • Áfangastaður sem er hvorki heil vefslóð né slóð sem byrjar á /, eða http:// eða rangt www áfangastaður á þínu eigin léni.
  • Stilling á skástriki í lokin sem myndi vísa áfangastað aftur áfram eða senda hann aftur á upptökin.

Algengar spurningar

Á ég að nota 301 eða 302?

Notaðu 301 þegar flutningurinn er varanlegur: leitarvélar færa merki gömlu síðunnar yfir á þá nýju og uppfæra vísi sinn. Notaðu 302 fyrir tímabundnar breytingar eins og viðhald eða stutta herferð. Vafrar geyma 301 endurvísanir í skyndiminni, svo prófaðu fyrst með 302.

Hvar set ég .htaccess skrána?

Í rótarmöppu vefsvæðisins (oft public_html eða www), við hliðina á index.php eða index.html. Niðurhalaða skráin heitir htaccess.txt; endurnefndu hana í .htaccess, eða límdu reglurnar efst í núverandi skrá. Taktu afrit af upprunalegu skránni.

Af hverju RewriteRule í stað Redirect 301?

Redirect línur koma frá mod_alias og keyra í öðrum áfanga en RewriteRule. Að blanda báðum í eina skrá gerir röðina erfiða að sjá fyrir. Með því að nota aðeins mod_rewrite eru allar reglur í einni fyrirsjáanlegri röð og hægt er að para fyrirspurnarstrengi.

Vefsvæðið mitt sýnir „too many redirects“ eftir að ég þvingaði HTTPS. Hvers vegna?

Á bak við álagsjafnara, CDN eða milliþjón sem lýkur HTTPS sér Apache hverja beiðni sem venjulegt HTTP, svo %{HTTPS} er alltaf af. Prófaðu þá framsenda hausinn í staðinn, til dæmis RewriteCond %{HTTP:X-Forwarded-Proto} !https, eða virkjaðu endurvísunina í CDN-inu.

Breytir þetta verkfæri netþjóninum mínum?

Nei. Það býr aðeins til texta í vafranum þínum. Ekkert er sent neitt og þú stjórnar sjálf(ur) hvar og hvernig reglurnar eru settar upp.