Ridrejtimi PHP i lidhjeve të jashtme. Ridrejtoni me kohëmatës me vonesë dhe numërim mbrapsht. Fshehja e lidhjeve të referimit. Si të vendosni një ridrejtim në një URL tjetër në PHP përpara se faqja të ngarkohet

Çdo përdorues i internetit ka hasur në ridrejtim (aka "ridrejtim"). Thjesht zgjidhni çdo faqe nga rezultatet e kërkimit në motorin e kërkimit dhe motori i kërkimit do t'ju ridrejtojë automatikisht në sit. Në këtë artikull do të flasim për llojet e ridrejtimeve dhe si t'i vendosni ato.

Operatorët bazë të shprehjes së rregullt

Së pari, le të shohim operatorët bazë të shprehjeve të rregullta (flamujt, modifikuesit, karakteret speciale):

Personazhe speciale:

  • ^ - kufiri i majtë (fillimi i rreshtit);
  • $ - kufizim në të djathtë (fundi i rreshtit);
  • . - çdo simbol;
  • () - ndryshore;
  • \ — arratisja (karakteri pas \ konsiderohet karakter i rregullt, jo karakter i veçantë);
  • — varg vlerash;
  • ! - karakter i veçantë mohues.

Modifikuesit:

  • ? — simboli përsëritet 0 ose 1 herë;
  • + — 1 ose më shumë karaktere (deri në 65536);
  • * - 0 ose më shumë karaktere (deri në 65536).
Si të vendosni ridrejtimin 301 htaccess

Le të fillojmë me 301 ridrejtime në htaccess. Së pari, është një ridrejtim automatik nga një adresë në tjetrën. Mund të përdoret mirë në rastin kur një sajt transferohet nga protokolli http në https, kur faqja është rikonfiguruar nga adresat "me madhësi të plotë" në CNC (d.m.th. ishte https://www.karcher.xyz/content /news/31-01 -2017/razdatka, u bë https://www.karcher.xyz/ razdatka), si dhe për “ngjitjen” e faqeve dublikate. Së dyti, një ridrejtim 301 u thotë motorëve të kërkimit se "djema, adresa që keni nuk funksionon më, kështu që shkoni atje" dhe ata thonë: "OK, ne do ta marrim parasysh këtë". Kështu, ridrejtimi ndodh pa dhimbje, pa humbje të pozicioneve dhe masës së lidhjes.

Por çfarë ndodh nëse “Oh, çfarë dreqin? Nëse shqetësohem me ridrejtimet, thjesht do të humbas kohë!”? Ju mund ta bëni këtë, POR... historia e faqes "e vjetër" do të humbasë, dhe ajo "e re" do të renditet "nga e para". Si rezultat, ka një humbje të pozicioneve dhe masës së lidhjes (kjo është në rastin më të mirë).

Opsionet për përdorimin e ridrejtimeve 301:

  • Bashkimi i domenit;
  • Zhvendosja e faqes në një adresë tjetër (mund të jetë e dobishme nëse faqja bie nën ndonjë filtër);
  • Për të rritur TCI, treguesit PR dhe për të rritur trafikun kur blini një domen tjetër (vendosni një ridrejtim në një burim që duhet të rrisë TCI dhe PR);
  • Kur ndryshoni motorin e faqes (në këtë rast, kërkohet rreptësisht vendosja e ridrejtimeve 301, përndryshe garantohet një humbje e plotë e trafikut);
  • kur kaloni nga http në https;
  • ngjitja "merr"

etj., të gjitha arsyet nuk mund të renditen.

301 Ridrejtoni kur ndryshoni domenin e faqes kryesore

Pra, ju keni vendosur të ndryshoni domenin tuaj. Ne ofrojmë menjëherë një zgjidhje të gatshme:

  • duke ripunuar robots.txt në domenin e vjetër. Teksti i përfunduar i skedarit:

Agjenti i përdoruesit: Yandex

Pritësi:newsite.com

  • konfiguroni një ridrejtim 301 për të gjitha faqet e sajtit (përveç skedarit robots.txt) duke përdorur kodin më poshtë:

RewriteCond %(REQUEST_FILENAME) robots.txt$

RewriteRule ^([^/]+) $1 [L]

RewriteCond %(HTTP_HOST) !^www\.site\.com

Ridrejtimi 301 kur ndryshon adresën e faqes

Një ridrejtim i faqes (kur ndryshon adresa e faqes) kryhet duke përdorur kodin më poshtë:

RewriteEngine Aktiv

RewriteCond %(HTTP_HOST) ^www\.stokrat\.org$

RewriteRule ^stranica/nastrojka-301-redirekta/$ https://www.site/newpage/

Është ky kod që përdoret kur "lëvizni" faqet, për shembull, në një CNC.

Vendosni një ridrejtim nga www në një domen pa www në htaccess

Përmend www. në adresën e domenit nuk ka qenë e rëndësishme për një kohë të gjatë. Megjithatë, faqet me www. i plotë. Bashkimi i domeneve nga www. dhe pa duhet të bëhet në mënyrë rigoroze të detyrueshme, sepse motorët e kërkimit i perceptojnë këto 2 domene si 2 sajte të ndryshme me TCI të ndryshme, PR, trafik, masë lidhjesh dhe gjithçka tjetër. Prandaj, njëri prej tyre është origjinali, dhe i dyti është një "mashtrues" me "përmbajtje të vjedhur". Për të parandaluar që kjo të ndodhë - domenet me www. dhe pa të është e nevojshme ta "ngjitni së bashku" duke përdorur ridrejtime 301. Kodi i konfigurimit është më poshtë.

Kodi i ridrejtimit nga www në jo-www në htaccess duket si ky:

RewriteEngine ndezur
RewriteCond %(HTTP_HOST) ^www.site.ru$

Tani le të kuptojmë direktivat.

RewriteEngine ndezur/fikur - në gjuhën e thjeshtë njerëzore - shërben si ndërprerës për 301 ridrejtime.

RewriteCond - kjo direktivë specifikon kushtet për "shkaktimin" e direktivës së ardhshme.

RewriteRule është një direktivë për konvertimin e një adrese në një tjetër.

Vendosni ridrejtimin 301 nga http në https përmes htaccess

Lëvizja nga http në https konsiderohet nga shumë si një "trend modern". Megjithatë, sot kjo masë është e detyrueshme (edhe pse formalisht nuk është e tillë). Dhe tani ka ardhur ora kur keni marrë një certifikatë SSL, faqja juaj tashmë po punon si në http ashtu edhe në https. Gjithçka që mbetet për t'u konfiguruar në skedarin .htaccess është një ridrejtim 301 nga versionet http në https të faqeve të faqes. Kodi i konfigurimit është dhënë më poshtë.

RewriteRule ^(.*)$ https://site.ru/$1

Dhe këtu është kodi për një ridrejtim të kundërt nga https në http. Siç mund ta shihni, ndryshimi është vetëm 1 karakter:

RewriteCond %(SERVER_PORT) !^443$

RewriteRule ^(.*)$ http://site.ru/$1

Ridrejto nga faqet index.php, index.html

Në pjesën më të madhe, ne do të flasim për ngjitjen e kopjimeve, nga të cilat mund të ketë një numër të madh.

Meqenëse index.php dhe index.html përmenden në nëntitull, tashmë keni marrë me mend se me ndihmën e 301 ridrejtimeve do të shpëtojmë nga kopjimet e faqes kryesore:

Sidoqoftë, nëse faqja kryesore ka një dublikatë të formularit site.ru/index.php, ka të ngjarë që faqet e mbetura të kenë gjithashtu dublikatë të formularit site.ru/index.php/page.html (me faqen origjinale të adresës .ru/page.html). Kjo është e keqe, kështu që kërkon gjithashtu vendosjen e një ridrejtimi 301 duke përdorur kodin më poshtë:

RewriteRule ^index\.php/(.*)$ /$1

Nuk është e pazakontë që faqja kryesore të ketë një pamje të kopjuar

site.ru/main.html, për të cilën është gjithashtu e nevojshme të regjistrohen 301 ridrejtime në site.ru:

RewriteEngine Aktiv

RewriteCond %(THE_REQUEST) ^(3,9)\ /main\.html\ HTTP/

Ose alternative:

Ridrejto 301 /main.html HYPERLINK "http://site.ru/" http:// faqe. ru/

Tani le të shqyrtojmë situatën e kundërt - kur dëshironi të bashkoni dublikatat duke vendosur ridrejtimin nga site.ru në site.ru/main.html. Ju mund ta bëni këtë duke përdorur kodin më poshtë.

RewriteCond %(REQUEST_URI) (.*/[^/.]+)($|\?)

RewriteRule .* %1.html

RewriteRule ^(.*)/$ /$1.html

Epo, nëse është e rëndësishme për ju që adresat e të gjitha faqeve të brendshme të shfaqen pa .html në fund, atëherë ridrejtimi konfigurohet me kodin e mëposhtëm:

RewriteCond %(REQUEST_URI) \.html$

RewriteRule ^(.*)\.html$ /$1

Tani rreth asaj se si të bëni një ridrejtim nga faqja në faqe, përkatësisht from.htm në pages.html. Për të vendosur një ridrejtim të tillë, thjesht shtoni kodin e mëposhtëm në .htaccess:

RewriteRule ^(.*)\.htm$1.html

Ridrejtimet nga adresat me dhe pa prerje në fund

Së pari, le të shohim një lloj tjetër faqesh të kopjuara - faqe si http://site.xyz/page dhe http://site.xyz/page/ - me përjashtim të vijës së pjerrët në fund, ato nuk ndryshojnë. Mund të konfiguroni ridrejtimin nga e para në të dytën dhe nga e dyta në të parën. Le të shqyrtojmë të dy opsionet:

Ridrejto nga http://site.xyz/page në http://site.xyz/page/:

RewriteCond %(REQUEST_FILENAME) !-f

RewriteCond %(REQUEST_URI) !\..+$

RewriteCond %(REQUEST_URI) !/$

RewriteRule (.*) http://www.site.ru/$1/

Ridrejto nga http://site.xyz/page/ në http://site.xyz/page:

RewriteCond %(REQUEST_FILENAME) !-d

RewriteCond %(REQUEST_URI) ^(.+)/$

RewriteRule ^(.+)/$ /$1

Për më tepër, nuk ka fare rëndësi nëse keni një prerje në fund të adresës pas ridrejtimit apo jo. Gjëja kryesore është që këto adresa janë ngjitur së bashku duke përdorur ridrejtime 301.

Ridrejto te versioni celular i faqes

Sigurisht, nëse faqja juaj funksionon në motorin WordPress ose Joomla, atëherë mund të vendosni një ridrejtim në versionin celular të faqes duke përdorur shtojca.

Sidoqoftë, Google është një ithtar i dizajnit të përgjegjshëm. Prandaj, nuk ka nevojë të ndahet një domen/nëndomain i veçantë për versionin celular. Ato. Google pretendon se "nëse është e mundur të bëhet pa ridrejtime në versionin celular, kjo është pikërisht ajo që duhet të bëni".

Por çfarë të bëni nëse ende nuk mund të bëni pa ridrejtime të tilla?

Ju mund të konfiguroni një ridrejtim nëpërmjet skedarit .htaccess

RewriteEngine Aktiv

RewriteCond %(HTTP_ACCEPT) "tekst\/vnd\.wap\.wml|aplikacion\/vnd\.wap\.xhtml\+xml"

RewriteCond %(REQUEST_URI) ^/$

RewriteRule ^ http://m.domain.com%(REQUEST_URI)

Vendosja e ridrejtimit celular përmes PHP

Ju duhet të përdorni bibliotekën speciale të Zbulimit të celularit, është e nevojshme për të njohur nëse përdoruesi ka ardhur nga një pajisje celulare apo nga një palëvizshme.

$detect = i ri Mobile_Detect;

nëse ($detect->isMobile()) (//code)

nëse ($detect->isTablet()) (//code)

nëse ($detect->isiOS()) (// kodi)

nëse ($detect->isAndroidOS()) (// kodi)

Nga ky kod bëhet e qartë se është e mundur të njihet jo vetëm një kompjuter/smartphone/tabletë, por edhe sistemi i tij operativ.

Ridrejtimi i JavaScript

Kodi i mëposhtëm ridrejtohet te nëndomeni celular. Baza e ridrejtimit është rezolucioni i ekranit - deri në 480 piksele të gjerë. Vetëm në gjerësi, jo në lartësi.

  • nëse (ekrani.gjerësia e ndezur

    Metoda 2. Vendosja e një ridrejtimi në site.com nëpërmjet .htaccess duke futur këtë kod:

    RewriteCond %(QUERY_STRING) ^route=common/home$

    RewriteRule ^index\.php$ http://site.com/?

    Në të njëjtën mënyrë (domethënë, e dyta), mund të vendosni ridrejtime nga adresat e kategorive të vjetra në ato të reja. Si parazgjedhje, adresat e lidhjeve në OpenCart duken diçka si kjo:

    site.com/index.php?path=83_94_113&route=product/category

    Është shumë e dhimbshme të shikosh lidhje të tilla, dhe në kuptimin e mirëfilltë, sepse... Sytë me të vërtetë fillojnë të më dhembin kur shoh adresa të tilla. Në të njëjtin .htaccess mund të konfiguroni një ridrejtim në adresat "njerëzore" si site.com/category duke përdorur kodin e mëposhtëm:

    RewriteCond %(QUERY_STRING) ^rruga=83_94_113&rruga=produkt/kategori$

    RewriteRule ^index\.php$ http://site.com/new-category?

    Por çfarë të bëjmë me adresat dinamike që, për shkak të lidhjes me një seksion specifik, duken si site.com/katalog?c=okna-pvkh ?

    Programuesit kanë kërkuar një zgjidhje për mjaft kohë. Në mënyrë të rastësishme (më saktë, provë dhe gabim), u gjet një zgjidhje. Në këtë rast, ndodh një ridrejtim në faqen kryesore të faqes:

    RewriteCond %(QUERY_STRING) ^c=okna-pvkh$

    Katalogu i RewriteRule http://site.com/?

    Shënime dhe gabime

    Tani le të flasim se si të shmangim gabimet kur vendosni një ridrejtim 301:

    • Sekuenca e rregullave të përcjelljes nuk duhet të shkelet. Pas konfigurimit të ridrejtimit, duhet të siguroheni që cilësimi të mos prodhojë ndonjë "efekt anësor". Nëse shkel sekuencën e rregullave, atëherë ridrejtimet e konfiguruara më parë mund të ndalojnë së funksionuari ose të funksionojnë gabimisht. Nuk duhet të ketë kontradikta në rregulla.
    • Mos ngurroni të përdorni manualet zyrtare, sepse... Ridrejtimet 301 kanë shumë veçori për shkak të sintaksës së tyre komplekse. Është e lehtë të humbasësh disa nuanca gjatë konfigurimit.
    • Pas "përfundimit" të radhës, kryeni GJITHMONË një kontroll të plotë të funksionalitetit të rregullave që janë zbatuar më parë. Vendosja pa kontroll nuk është përcaktim as "për shfaqje". Një karakter shtesë mund të prishë të gjithë faqen ose ta bëjë atë të funksionojë gabimisht. Pas programuesve të tjerë, më shumë se një herë na është dashur të korrigjojmë funksionimin e sajtit, kur ndodh një ridrejtim 301 nga adresa site.com/oldpage në site.com/newpage dhe më pas, duke përdorur të njëjtin ridrejtim 301, ndodh një ridrejtim kthehu te site.com/oldpage dhe më tej " round".

    Epo, në përfundim, ne do të japim disa shembuj kur nuk mund të përdorni fare ridrejtime 301.

    Së pari, "multi-pass", kur ka një seri prej disa 301 ridrejtimesh me radhë. Është shumë më e saktë të vendosni një ridrejtim direkt në adresën "përfunduese".

    Së dyti, nëse për ndonjë arsye ka 2 faqe me përmbajtje të kopjuar, por ju duhet t'i ruani të dyja për përdoruesit.

    Së treti, ridrejtimet "në vendin e gabuar". Ato. nëse faqja ka lëvizur nga adresa e parë në të dytën, dhe kur vendosni një ridrejtim ju tregoni gabimisht adresën e një faqeje krejtësisht të ndryshme.

    Së katërti, ridrejtoni në një faqe që për ndonjë arsye po funksionon shumë gabim. Faqja duhet të funksionojë në mënyrë të qëndrueshme dhe të kthejë ose kodin 200 ose kodin 404.

    Së pesti, ridrejtoni skedarin robots.txt. Kjo është e ndaluar nga rregullat e shumë motorëve të kërkimit. Për më tepër, shumë njerëz bëjnë të njëjtin gabim - kur konfigurojnë një ridrejtim htaccess në https nga http://site.xyz/robots.txt në https://site.xyz/robots.txt. Skedari robots.txt duhet të jetë i aksesueshëm në të dyja adresat pa ndonjë ridrejtim. Saktësisht e njëjta gjë vlen edhe për hartën e faqes xml.

    Lundrim i shpejtë në këtë faqe:

    Nëse vendosni të shkruani një skript dhe të ridrejtoni PHP, avantazhet e këtij hapi janë të dukshme: PHP është një gjuhë skriptimi e orientuar nga serveri; ridrejtimi do të kryhet përmes një skripti në server, dhe jo në shfletuesin e vizitorëve. Disa ridrejtime mund të kryhen në anën e klientit - përmes një ridrejtimi js (d.m.th., përmes një ridrejtimi JavaScript).

    Kjo është një qasje më fleksibël dhe e gjithanshme dhe ju mund të kryeni lloje të shumta ridrejtimesh në PHP, ndryshe nga metodat e tjera. Këtu janë llojet më të zakonshme të ridrejtimit që mund të bëhen në PHP: a) ridrejtimi 301 PHP (statusi i përhershëm i ridrejtimit), b) ridrejtimi 302 PHP (statusi i ridrejtimit i përkohshëm), c) Përditësimi.

    Ky artikull do të jetë i dobishëm kryesisht për webmasterët fillestarë që kërkojnë mënyra për të zbatuar ridrejtimin e URL-së nëse nuk është e mundur duke përdorur zgjidhje të tjera të zakonshme si Htaccess.

    Kreu i gjuhës së funksionit PHP

    Për shembull, le të themi se dëshironi të ridrejtoni në këtë URL http://www.somewebsite.com/target.php. Në burimin PHP të faqes, thjesht duhet të telefononi këtë skript ridrejtues:

    Provoni gjithashtu këtë eksperiment të thjeshtë në hostin tuaj lokal:

    1) Hapni një redaktues teksti dhe shkruani këtë kod:

    Ruajeni si targetpage.php.

    2) Hapni një skedar tjetër teksti bosh dhe futni këtë kod:

    Ruajeni si faqe origjinale.php.

    3) Tani hapni shfletuesin tuaj të internetit. Në shiritin e adresave të shfletuesit tuaj, shkruani: http://localhost/originatingpage.php

    4) Do të vini re se pasi të shtypni butonin enter, kjo URL: http://localhost/originatingpage.php ridrejtohet në http://localhost/targetpage.php dhe në targetpage.php, dhe shihni fjalët "Përshëndetje kjo është kodeks” -x”.

    Një nga gabimet më të zakonshme mund të fshihet në hartimin e kodit të ridrejtimit html:

    Provoni këtë eksperiment:

    Shkoni te skripti originatingpage.php dhe shtoni çdo etiketë HTML:

    header('Vendndodhja: http://localhost/targetpage.php');

    Le të themi se keni kod si ky:

    Ky është një gabim ridrejtues

  • 
    Top