Gjenerues i ridrejtimeve .htaccess
Gjenero ridrejtime 301 dhe 302 për .htaccess ose Nginx, detyro HTTPS dhe www, zhvendos një domen dhe rregullo vijën e pjerrët, me kontrolle për cikle.
Bëj fillimisht një kopje rezervë të konfigurimit aktual dhe provo me 302 para se të kalosh te 301: shfletuesit i ruajnë në cache ridrejtimet e përhershme.
Kontrolle
Nuk u gjet asnjë problem.
Si ta përdorësh gjeneruesin e ridrejtimeve .htaccess
- Zgjidh Serveri: Apache (.htaccess) ose Nginx, pastaj Lloji i ridrejtimit: 301 – i përhershëm ose 302 – i përkohshëm.
- Te Ridrejtimet e faqeve, shkruaj një ridrejtim për rresht: shtegun e vjetër, një hapësirë, pastaj URL-në e re, për shembull
/old-page.html /new-page/. Funksionojnë edhe një tab, një presje ose->, dhe mund të ngjitësh URL të plota të vjetra ose rreshta ekzistuesRedirect 301 /a /b. - Opsionalisht shkruaj Domeni yt (opsional) (për shembull
example.com) që ridrejtimet e faqeve të shkojnë drejt e te adresa përfundimtare. - Te Adresa kanonike, shëno Detyro HTTPS dhe zgjidh Detyro www, Hiq www ose Lëre www siç është. Te Vija e pjerrët në fund, zgjidh nëse do ta shtosh apo ta heqësh.
- Nëse i gjithë sajti është zhvendosur, plotëso Zhvendos të gjithë domenin me Domeni i vjetër dhe Adresa e re (URL absolute), dhe lëre të shënuar Ruaj shtegun (old.com/page → new.com/page) që çdo faqe të mbërrijë te ekuivalenti i saj.
- Lexo Kontrolle, pastaj Kopjo ose Shkarko rregullat. Përdor Ngarko një shembull për të parë një konfigurim të plotë.
Si funksionojnë rregullat e gjeneruara
Për Apache, mjeti shkruan rregulla mod_rewrite, duke filluar me një RewriteEngine On të vetëm. Çdo faqe bëhet një RewriteRule me model që fillon me ^/?, ndaj funksionon si në një skedar .htaccess (ku vija e pjerrët në fillim hiqet), ashtu edhe në një bllok <VirtualHost>. Pikat, kllapat, shenjat plus dhe karakteret e tjera të shprehjeve të rregullta në shtigjet e tua escape-het, dhe një hapësirë bëhet \x20. Te URL-ja e re, $ dhe % escape-hen sepse Apache do t’i lexonte si referenca, dhe flamuri NE e pengon Apache të kodojë URL-në për herë të dytë.
Një RewriteRule nuk e sheh kurrë query string-un. Kur një adresë e vjetër përmban një, si /product.php?id=42, mjeti shton një rresht RewriteCond %{QUERY_STRING} ^id=42$ dhe flamurin QSD, që parametrat e vjetër të hidhen në vend që të kopjohen te faqja e re.
Rregullat renditen për të shmangur kërcime të panevojshme: fillimisht zhvendosja e domenit, pastaj ridrejtimet e faqeve, pastaj vija e pjerrët, pastaj HTTPS dhe www. HTTPS dhe www trajtohen nga një rregull i vetëm, kështu që http://www.example.com shkon te https://example.com me një ridrejtim të vetëm. Kur domeni yt njihet, ridrejtimet e faqeve dhe të vijës shkojnë tashmë te adresa përfundimtare HTTPS.
Për Nginx, HTTPS, www dhe zhvendosjet e domenit bëhen blloqe server të veçanta me return 301, dhe ridrejtimet e faqeve bëhen rreshta rewrite që i ngjit brenda bllokut tënd kryesor server. Ato ekzekutohen para përputhjes së location, ndaj mbizotërojnë edhe mbi rregullin e vijës së pjerrët. Një ? në fund të destinacionit e pengon Nginx të shtojë query string-un e vjetër kur nuk duhet.
Kontrollet që kryhen
- Një faqe që ridrejtohet te vetja, ose dy faqe që ridrejtohen te njëra-tjetra (një cikël që mbaron me “too many redirects”).
- Zinxhirë si A → B → C: drejto A drejt e te C, sepse çdo kërcim shtesë i ngadalëson vizitorët dhe harxhon buxhetin e crawl-it.
- E njëjta adresë e vjetër e listuar dy herë, ku do të zbatohej vetëm rregulli i parë.
- Një destinacion që nuk është as URL absolute as shteg që fillon me
/, ose një destinacionhttp://ose me www të gabuar në domenin tënd. - Një cilësim i vijës së pjerrët që do ta ridrejtonte përsëri një destinacion ose do ta kthente te burimi i tij.
Pyetje të shpeshta
Të përdor 301 apo 302?
Përdor 301 kur zhvendosja është e përhershme: motorët e kërkimit i transferojnë sinjalet e faqes së vjetër te e reja dhe përditësojnë indeksin e tyre. Përdor 302 për ndryshime të përkohshme si mirëmbajtja ose një fushatë e shkurtër. Shfletuesit i ruajnë në cache ridrejtimet 301, ndaj provo fillimisht me 302.
Ku e vendos skedarin .htaccess?
Në dosjen rrënjë të sajtit (shpesh public_html ose www), pranë index.php ose index.html. Shkarkimi quhet htaccess.txt; riemërtoje në .htaccess, ose ngjit rregullat në krye të skedarit ekzistues. Mbaj një kopje rezervë të origjinalit.
Pse të përdor RewriteRule në vend të Redirect 301?
Rreshtat Redirect vijnë nga mod_alias dhe ekzekutohen në një fazë tjetër nga RewriteRule. Përzierja e të dyjave në një skedar e bën renditjen të vështirë për t’u parashikuar. Përdorimi vetëm i mod_rewrite i mban të gjitha rregullat në një varg të parashikueshëm dhe lejon përputhjen me query string.
Sajti im shfaq “too many redirects” pasi detyrova HTTPS. Pse?
Pas një load balancer-i, CDN-je ose proxy-je që e mbyll HTTPS, Apache e sheh çdo kërkesë si HTTP të thjeshtë, ndaj %{HTTPS} është gjithmonë i çaktivizuar. Në atë rast testo header-in e përcjellë, për shembull RewriteCond %{HTTP:X-Forwarded-Proto} !https, ose aktivizo ridrejtimin te CDN-ja.
A e ndryshon ky mjet serverin tim?
Jo. Gjeneron vetëm tekst në shfletuesin tënd. Asgjë nuk dërgohet askund dhe ti vendos se ku e si instalohen rregullat.
Mjete të ngjashme
- Gjenerues i robots.txt Krijo një skedar robots.txt të vlefshëm me grupe user-agent, rregulla Allow dhe Disallow, sitemap-e dhe crawl-delay, me kontrolle për gabimet e zakonshme.
- Gjenerues i etiketave hreflang Gjenero etiketa hreflang për faqe shumëgjuhëshe si etiketa HTML link, hyrje sitemap XML ose header HTTP Link, me kontrolle për kodet ISO dhe reciprocitetin.
- Gjenerues i meta tagjeve Gjenerues falas për meta tagjet e titullit, meta description, URL kanonike, robots dhe viewport, me kontrolle gjatësie dhe HTML të escape-uar saktë.
- Kodues dhe dekodues URL Kodues dhe dekodues URL falas. Kodo parametrat e query ose URL të plota, dekodo sekuencat %XX dhe trajto + si hapësirë. Ekzekutohet në shfletuesin tënd.