Untimely redirect php. PHP redirect ng mga panlabas na link. Mag-redirect nang may pagkaantala at countdown timer. Pagtatago ng mga referral link

Huling binago noong ika-25 ng Pebrero, 2017 ni Vincy.

Ang mekanismo ng pag-redirect ng PHP ay ginagamit upang i-navigate ang user mula sa isang pahina sa isa pa nang hindi nag-click sa anumang mga hyperlink. Makakatulong ito sa mga ganitong pagkakataon kung saan dapat gawin ang pag-redirect sa background. Halimbawa, kapag ang user ay nag-a-access ng gateway ng pagbabayad, ang pag-redirect ay dapat na awtomatikong maganap upang ipaalam ang URL gamit ang PHP script.

Nagbibigay ang PHP ng paunang natukoy na function, pinangalanang header(), para sa pag-redirect ng URL. Gamit ang header() function na ito, kailangan naming magpadala ng header ng lokasyon sa pamamagitan ng pagtukoy ng URL kung saan dapat i-redirect ang page.

Hindi tulad ng kung saan mayroong ilang mga paraan upang mahawakan ang mga gawa sa pag-redirect ng URL batay sa browser, iniiwasan ng PHP ang gayong pagkalito at may header() function na lumikha ng parehong epekto sa lahat ng browser. Para lang doon, nagtapos kami sa pag-redirect ng JavaScript na artikulo na gilid ng server mas mainam ang pag-redirect.

PHP Redirect Syntax header("Lokasyon: target-url");

Sa itaas na syntax ng pag-redirect ng PHP, kailangan nating palitan ng wastong URL kung saan gusto nating ilipat. Maaari naming tukuyin ang alinman sa ganap na URL o kamag-anak na URL para sa header ng lokasyon na ito. Kung tutukuyin namin ang kamag-anak na URL, hahanapin nito ang pahina sa aming domain kung saan kami umiiral.

Tandaan: Bago tukuyin ang URL ng page para sa header ng lokasyon, dapat nating tiyakin na umiiral ang page.

Mag-ingat bago Mag-redirect

Bago isagawa ang pag-redirect ng PHP, dapat nating tiyakin ang tungkol sa, walang output na ipinadala sa browser bago ang linya kung saan tinatawag natin ang header() function. Halimbawa,

Echo "Pag-redirect ng PHP"; header("Lokasyon: site");

Ipapakita ng script na ito ang sumusunod na babala sa browser.

Babala: Hindi maaaring baguhin ang impormasyon ng header - mga header na ipinadala na ni (...

Ito ay hindi lamang naaangkop para sa header function, sa halip para sa lahat ng PHP function tulad ng set_cookie(), session_start() at iba pa, anuman ang maaaring magbago ng header. Para doon, dapat naming alisin ang lahat ng nilalaman na hihinto sa pagpapadala ng header ng lokasyon sa browser.

Mga Posibleng Paraan ng Pagpapadala ng Output
  • HTML na nilalaman tulad ng teksto o mga tag.
  • Mga hindi kinakailangang puting espasyo bago ang mga delimiter ng PHP.
  • PHP error o babala notice na nangyayari bago tumawag sa redirect.
  • PHP , tulad ng, echo(), print().
Mga Panukala sa Kaligtasan mula sa output na ipinapadala bago ang PHP Redirect
  • Dahil ang HTML na nilalaman ay dapat ipadala bago ang pag-redirect, maaari naming paghiwalayin ang PHP logic mula sa HTML na nilalaman.
  • Para sa pagiging nasa panig ng kaligtasan maaari naming ilagay labasan utos pagkatapos ng pag-redirect na pahayag ng PHP file. Halimbawa, header("Lokasyon: website"); labasan;
  • Maaari naming paganahin ang PHP output buffering upang ihinto ang pagpapadala ng output sa browser at sa halip ay iimbak sa isang buffer.
Ano ang 301 redirect?

301 redirect o 301 redirect (mula sa English redirection) - Ito ay isang sapilitang pag-redirect ng user mula sa isang URL patungo sa isa pa. Bukod dito, ang parehong mga address ay maaaring kabilang sa pareho o magkaibang mga domain name.

Sa madaling salita. Pumasok ang user address bar browser (o sundan ang link) isa URL address, ngunit awtomatikong napupunta sa isa pa.

Ano ang nangyayari sa ngayon?

Nagaganap ang pag-redirect gamit ang isang 301 redirect. Gumagana ito bilang mga sumusunod.

Ang isang tao ay nagpasok ng isang URL sa address bar (o mga pag-click sa isang hyperlink);

Nakatanggap ang server ng kahilingan na may URL address at sinimulan itong iproseso;

Habang pinoproseso ang isang kahilingan, nakatagpo ito ng isang tagubilin pag-redirect at sumusunod sa kanyang mga tagubilin;

Ipinapadala sa user ang bagong URL na tinukoy sa mga tagubilin at isang 301 na tugon.

Ito ay nagkakahalaga ng pagsasabi na ang 301 na pag-redirect ay wasto hindi lamang para sa mga tao, kundi pati na rin para sa mga robot. Ibig sabihin, mare-redirect din ang search engine crawler sa ibang URL kung may redirect. Ngunit pag-usapan natin ito.

Bakit kailangan mo ng 301 redirect?

Tulad ng nalaman na namin, ang isang 301 na pag-redirect ay ginagamit upang mag-redirect mula sa isang address patungo sa isa pa. Talaga, ito ay kinakailangan sa mga sumusunod na kaso.

    Permanenteng nagbago ang address ng page, kaya kailangan mong i-redirect ang mga user sa kasalukuyang URL;

    Ang domain ng website ay nagbago, kaya kailangan mong i-redirect ang mga tao sa bagong domain;

    Ang parehong materyal ay may ilang mga URL, iyon ay, mga duplicate;

    Kapag nagpapatakbo ng mga online na serbisyo, form, module at iba pang interactive na elemento ng site, kinakailangan ang pag-redirect.

Siyempre, hindi ito kumpletong listahan kung paano mo magagamit ang 301 redirect, ngunit ito ang pangunahing isa.

Kailangan mong maunawaan na ang paggawa ng 301 na pag-redirect mula sa isang pahina ay posible lamang kung mayroon kang access sa mismong pahinang iyon. Ibig sabihin, hindi ka makakapag-set up ng redirect para sa anumang mapagkukunan. Ito ang dahilan kung bakit ang isang 301 na pag-redirect ay itinuturing na isang "opisyal" na pag-redirect na ginawa ng may-ari ng site.

Paano gumawa ng 301 redirect?

Ang paggawa ng 301 redirect ay isang medyo simpleng gawain. Walang nakakalito na mga algorithm at mga kumplikadong istruktura. Kailangan mo lang matutunan ang syntax at maunawaan ang ilang mga prinsipyo ng pagpapatakbo.

Sa ibaba ay ilalarawan namin ang ilang pangunahing paraan upang lumikha ng 301 redirect, na naiiba sa kanilang pagpapatupad, ngunit may parehong resulta.

301 redirect sa .htaccess (Apache)

Ang paggawa ng 301 redirect sa .htaccess na file ay ang pinakasikat na paraan para gumawa ng redirect. Ito ay medyo simple at magagamit sa lahat ng mga gumagamit na gumagamit ng Apache bilang isang server.

Ang .htaccess file ay matatagpuan sa root directory ng iyong site. Makakarating ka doon Koneksyon sa FTP o isang file manager, na available sa halos lahat ng hosting provider.

Pakitandaan na ang pangalan ng file ay nagsisimula sa isang service character - isang tuldok. Sa ilang mga file system nakatago ang mga naturang dokumento bilang default. Sa kasong ito, kailangan mong baguhin ang mga setting upang makita ang .htaccess.

Hindi namin susuriin nang detalyado ang lahat ng mga tagubilin sa .htaccess na file na isasaalang-alang lamang namin ang mga nauugnay sa pag-redirect ng 301.

Una, kailangan mong tiyakin na mayroon kang naka-install na mod_rewrite module, dahil responsable ito sa pag-redirect ng mga URL. Kaugnay nito, maaari kang makipag-ugnayan sa iyong host provider o hanapin at suriin ang Apache configuration file (httpd.conf) sa iyong sarili.

Inihahanda ang .htaccess para sa trabaho

Gumawa o magbukas ng kasalukuyang .htaccess file. Isinulat namin ang mga sumusunod na linya dito:

Isa itong condition entry. Sinusuri nito kung ang mod_rewrite module na kailangan namin ay naka-install sa Apache. Kung mayroong isa, ang lahat ng tinukoy sa pagitan ng at mga tag ay isinasagawa. Kung tatanggihan mo ang tagubiling ito, may ipapakitang error kung nawawala ang module.

Pagkatapos nito, sa loob ng mga tag sa itaas para sa pagsuri sa pagkakaroon ng isang module, dapat mong tukuyin ang sumusunod na pagtuturo:

Naka-on ang RewriteEngine

Ang entry na ito ay magbibigay-daan sa mod_rewrite module.

Sinusulat namin ang sumusunod na linya:

RewriteBase /

Ang isang command na tulad nito ay nagtatakda ng base URL. Kadalasan ito ang domain mismo, halimbawa http://example.ru. Ito ay mula sa itinatag na address na ibabatay namin ang aming karagdagang trabaho.

Kung naisulat mo nang tama ang lahat, ang resulta ay magiging isang file na tulad nito:

Iyon lang, ang aming .htaccess ay handa nang magdagdag ng mga pag-redirect.

Idagdag sa. pag-redirect ng htaccess

Mayroong dalawang pangunahing tagubilin na maaaring magamit upang gumawa ng pag-redirect:

Ang redirect 301 ay ang pinakasimpleng uri ng pag-redirect, na idinisenyo para sa pag-redirect mula sa pahina patungo sa pahina sa loob ng isang domain at sa loob ng ilang mga address ng domain. Gumagana sa mga URL na walang mga parameter.

RewriteCond / RewriteRule - mas nababaluktot at kumplikadong mga tuntunin mga pag-redirect. Karaniwang ginagamit para sa mga mass redirect.

Ngayon tungkol sa bawat isa nang mas detalyado.

I-redirect ang 301

Ang pinakasimpleng mga tagubilin sa bawat kahulugan. Ang syntax nito ay umaangkop sa isang linya:

I-redirect ang 301

Mayroon lamang isang puwang sa pagitan ng mga address. Walang mga tuldok, gitling o iba pang mga third-party na character.

Halimbawa ng paggamit ng redirect:

I-redirect ang 301 /old-page.html http://example.ru/new-page.html

Sa file, ganito ang hitsura:

Iyon lang ang kailangan mong malaman tungkol sa tagubiling ito.

RewriteRule(RewriteCond)

Ito ay isang pinagsama-samang pagtuturo na nahahati sa 2 pangunahing utos.

RewriteCond - Itinatakda ang kundisyon para sa sumusunod na direktiba ng RewriteRule. Hindi naaangkop nang hiwalay.

RewriteRule — Inilalarawan ang panuntunan para sa pagbabago ng URL.

Tingnan natin kaagad ang isang halimbawa ng paggamit. Nasa ibaba ang bahagi ng .htaccess file. Ang passage na ito ay responsable para sa 301 na pag-redirect mula sa isang domain na walang WWW patungo sa isang domain na may WWW.

Tingnan natin ito nang linya sa linya.

# BEGIN WordPress RewriteEngine Sa RewriteCond %(HTTP_HOST) ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1

1 linya. Nagkomento na text. Ang mga komento sa .htaccess file ay nagsisimula sa “#”. Hindi ito nakakaapekto sa pagpapatupad ng file sa anumang paraan.

Linya 2. Sinusuri ang pagkakaroon ng mod_rewrite module.

3 linya. Ina-activate ang mod_rewrite module.

4 na linya. RewriteCond na direktiba. Sinusuri kung mayroong "www" sa simula ng address. Kung hindi, ma-trigger ang RewriteRule na matatagpuan sa ibaba.

5 linya. Direktiba ng RewriteRule. Nagre-redirect sa "www".

6 na linya. Pagtatapos ng lalagyan na sinusuri ang pagkakaroon ng mod_rewrite module.

Hindi namin ilalarawan nang detalyado ang syntax at lahat ng posibleng command na ginagamit kapag nagtatrabaho sa .htaccess na file sa artikulong ito, dahil ito ay isang napaka-global at hindi SEO na paksa. Makakahanap ka ng mga halimbawa ng mga pag-redirect.

301 redirect gamit ang PHP

Bilang karagdagan sa .htaccess file, maaaring gawin ang 301 redirect gamit ang PHP. Ang kakanyahan ng pamamaraan ay napaka-simple at gumagamit ng mga header na ipinadala ng server sa kahilingan ng kliyente.

Upang gumawa ng pag-redirect, kailangan mong magsulat sa dokumento php code sumusunod na nilalaman:

Kaya, kapag ina-access ang pahina, matatanggap ng kliyente ang header na kailangan namin na naglalaman ng pag-redirect.

Pakitandaan na bago tawagin ang header, walang dapat i-print, kung hindi, magkakaroon ka ng error. Ito ay tungkol sa tungkol sa "echo" o "print". Pinakamainam na ilagay ang code na ito sa pinakadulo simula ng script.

At narito ang isang opsyon sa pag-save ng lahat ng mga parameter ng kahilingan at address ng pahina (iyon ay, ang domain ay babaguhin, ngunit ang natitirang bahagi ng URL ay mananatiling pareho):

Ang paraan ng pag-redirect na ito ay medyo simple upang ipatupad, ngunit may malaking kawalan. Ang code ay dapat na pisikal na idinagdag para sa bawat pahina kung saan mo gustong mag-redirect.

301 redirect sa Nginx

Hindi namin isasaalang-alang nang detalyado ang lahat ng mga nuances ng pag-set up ng isang 301 na pag-redirect sa nginx, dahil ito ay isang napaka pandaigdigang paksa at malayo sa promosyon ng SEO. Tingnan natin ang ilan lamang sa mga pinakasikat na pag-redirect.

301 redirect mula sa http sa https para sa Nginx

Pagkatapos ng mga pamamaraang ito, mauunawaan ng search engine kung aling salamin ang dapat lumahok sa paghahanap, at palaging lilipat ang mga user sa https.

301 na pag-redirect lamang ang maaaring pagsamahin ang mga pangalan ng domain.

Function 4. Dalhin ang mga URL sa iisang form

Ginagamit din ang mga 301 na pag-redirect upang dalhin ang lahat ng URL ng website sa isang solong anyo. Ipagpalagay natin na ang ilang mga URL ay may slash sa dulo, at ang ilan ay wala. Sa kasong ito, kailangan naming magpasya kung saang format namin kino-convert ang mga address at gumawa ng pag-redirect.

Halimbawa, sa aming site ang lahat ng URL ay may slash sa dulo ng linya. Kapag lumitaw ang isang address na walang slash, awtomatikong gagawin mula rito ang isang pag-redirect.


301 redirect o rel="canonical"

Hindi bababa sa ilang sitwasyon, ang attribute na rel="canonical" ay itinuturing na alternatibo sa 301 redirect. Tingnan natin kung totoo ito.

Tandaan natin na ang rel="canonical" ay nagpapahintulot sa iyo na tukuyin ang pangunahing URL ng pahina sa search engine. Magbasa pa tungkol sa ibinigay na katangian nagsulat kami kanina.

Una kailangan mong maunawaan ang mga pagkakaiba sa pagitan ng mga pamamaraang ito. Para sa layuning ito, nilikha namin ang sumusunod na talahanayan.

Tulad ng makikita mula sa talahanayan, ang mga pagkakaiba sa pagitan ng mga tool ay masyadong malaki upang isaalang-alang ang mga ito na alternatibo sa bawat isa. Ang bawat isa sa kanila ay idinisenyo upang malutas ang sarili nitong mga problema.

Ang isa sa mga pangunahing pag-andar ng 301 na pag-redirect, na hindi maiiwasan sa SEO, ay ang mirror gluing.

Ang mga search engine mirror ay mga site na may parehong nilalaman. (o isang bahagyang kopya ng nilalaman) available sa iba't ibang URL. Kakatwa, halos lahat ng site sa Internet ay may mga salamin. Ang bagay ay para sa isang search engine, ang isang domain na may www at walang www ay magkaibang mga address.

Ibig sabihin, ang www..ru para sa isang search engine ay magkakaibang mga URL kung saan available ang parehong nilalaman. Ang kasong ito ay napakapopular na ang Yandex Webmaster ay may seksyong "Paglipat ng Site", kung saan maaari mong piliin ang pangunahing salamin na makikita sa paghahanap. Ang pag-redirect ay hindi lilitaw sa kasong ito, siyempre. Ang mga tagubiling ito ay inilaan lamang para sa robot ng search engine.

Sa kaso ng www, ang 301 na pag-redirect ay madalas na hindi nakatakda, dahil ang mga domain ay awtomatikong kinikilala bilang mga salamin. Bagaman umiiral ang gayong posibilidad, at kung minsan ay kinakailangan pa nga. Tungkol sa pag-redirect mula sa www sa WALANG www namin.

Sa lahat ng iba pang mga kaso, ang pag-redirect ay kinakailangan para sa gluing.

Sabihin nating mayroon kaming binisita na komersyal na mapagkukunan. Ang kumpanyang nagmamay-ari nito ay sumasanib sa ibang kumpanya, bilang resulta kung saan kinakailangan na mag-rebrand, kabilang ang pagpapalit ng domain name ng site. Ano ang gagawin sa kasong ito? Pagkatapos ng lahat, ang site ay patuloy na nagdadala ng mga customer mula sa mga resulta ng organic na paghahanap.

May solusyon: kailangan mong pagsamahin ang bagong domain sa umiiral na. Sa kasong ito, ang na-update na address ay dapat na maging pangunahing address at naroroon sa mga resulta ng paghahanap. Ang 301 redirect ay makakatulong sa amin dito. Kailangan mong mag-attach ng bagong domain sa site, at pagkatapos ay lumikha ng 301 na pag-redirect mula sa lahat ng URL na naglalaman ng lumang domain name sa mga kaukulang URL na may bagong domain name. Tungkol sa kung paano ito ginagawa.

Ito ay nagkakahalaga na sabihin na pagkatapos ng pamamaraang ito, ang TIC, "link juice" at iba pang "bully" ay ililipat sa bagong domain.

Pagkatapos ng ilang pag-update, lalabas ang bagong domain sa mga resulta ng paghahanap, makikilala ang mga site bilang mga salamin, at dapat na mapanatili ang mga posisyon at visibility.

Pagkakaiba sa pagitan ng 301 at 302 na pag-redirect

Mula sa isang SEO point of view, ang isang 301 redirect ay sa panimula ay naiiba mula sa isang 302. Kahit na ang kanilang syntax ay halos magkapareho, sila ay may ganap na magkakaibang mga kahulugan para sa isang search engine. Narito ang kanilang pangunahing pagkakaiba:

301 redirect (Permanent Redirect) - permanenteng paggalaw ng pahina;

302 redirect (Temporary redirect) - pansamantalang paggalaw ng pahina;

Ang lahat ng kanilang pagkakaiba at prinsipyo ng paggamit ay sumusunod dito.

Sa madaling salita, sa pamamagitan ng paggawa ng 301 redirect ay "sinasabi" namin sa search engine kung sino kami lumang address maaari mong kalimutan at lahat ng materyal ay magagamit na ngayon sa bagong URL.

Sa kaso ng isang 302 redirect, ipinapaalam namin sa iyo na ang pag-redirect ay pansamantala at ang lumang address ay malapit nang maging available muli. Iyon ay, kailangan mong maikli na ilipat ang trapiko mula sa isang pahina patungo sa isa pa, pagkatapos nito ay babalik sa normal ang lahat.

*Nararapat sabihin na ang 301 at 302 na pag-redirect ay may iba't ibang antas ng panganib na mahuli ng mga filter ng search engine para sa pandaraya. Siyempre, nang hindi lumalabag sa anumang mga patakaran, ang mga parusa ay malamang na hindi mailapat sa iyo, ngunit susuriin pa rin namin ang mga panganib. Dahil ang 302 redirect ay kadalasang ginagamit sa black hat SEO, ang panganib kapag ginagamit ito ay mas mataas kaysa sa isang 301 redirect.

Kailan makatwirang gumamit ng 302 redirect?

Ang paggamit ng 302 redirect ay makatwiran sa mga kaso kung saan kinakailangan na pansamantalang i-redirect ang mga user sa isa pang page sa site. Narito ang mga halimbawa ng mga ganitong sitwasyon.

  • Simpleng 301 Redirects plugin

    Ang prinsipyo ng pag-install ay eksaktong kapareho ng para sa Pag-redirect. Sa paghahanap ng mga plugin kailangan mong hanapin:

    Pagkatapos i-activate ang plugin, sa kaliwa Menu ng WordPress sa seksyong "Mga Setting" may lalabas na link na "301 redirects". Sinusundan namin ito at nakarating sa isang pahina na may dalawang field.

    Ang unang field ay kung saan namin itinakda ang pag-redirect, ang pangalawang field ay kung saan. Walang mga kumplikadong setting, lahat ay kasing simple hangga't maaari.

    301 redirect sa Joomla!

    Upang lumikha ng 301 redirect sa Joomla! 3 mayroon nang isang karaniwang bahagi. Mahahanap mo ito sa pamamagitan ng pagpapalawak ng menu na "Mga Bahagi" -> "Pag-redirect".

    Pagkatapos ng paglipat, makikita mo ang lahat ng magagamit na pag-redirect, kung mayroon man.

    Upang lumikha ng bago, kailangan mong mag-click sa pindutang "Lumikha" at punan ang lahat mga kinakailangang field (minarkahan ng asterisk).

    Ang pag-redirect ay dapat gumana kaagad pagkatapos i-save. Kung hindi ito mangyayari, dapat mong sundin ang mga hakbang sa ibaba.

    Ano ang gagawin kung mayroong 301 redirect sa Joomla! hindi gumagana?

    Kung, kapag ginagamit ang karaniwang bahagi ng mga pag-redirect sa Joomla! 3, hindi gumana ang pag-redirect, kailangan mong:

    Buksan ang configuration.php file na matatagpuan sa root folder ng iyong site;

    Maghanap ng variable na pampublikong $live_site;

    Italaga ang domain ng iyong site bilang halaga nito.

    I-save ang mga pagbabago at suriin ang pag-redirect.

    301 na pag-redirect sa Opencart 2

    Para sa Opencart 2 mayroong isang yari na module na nagbibigay-daan sa iyong lumikha ng mga permanenteng pag-redirect. Ang pangalan nito ay "301 Redirect Manager".

    Sinusuportahan nito ang lahat ng uri ng 301 na pag-redirect at tugma sa lahat ng bersyon ng Opencart 2.x.

    Maaaring sumalungat ang module na ito sa mga dating naka-install na mga extension ng SEO, kaya mangyaring basahin ang mga tagubilin bago bumili at mag-install.

    Huwag kalimutan na ang anumang CMS system, kabilang ang Opencart, ay sumusuporta sa mga pag-redirect na ginawa nang manu-mano sa o sa pamamagitan ng .

    301 redirect sa Modx

    Mayroong maraming para sa Modx Revo handa na mga solusyon pagpapatupad ng 301st redirect. Isa sa mga ito ay Redirector. Ang pag-install at paggamit ng extension na ito ay madali. Kung, gayunpaman, mayroon kang anumang mga paghihirap, maaari mong pag-aralan ang anumang tanong nang detalyado sa opisyal na pahina https://docs.modx.com/extras/revo/redirector.

    301 redirect para sa Wix

    Ang Wix ay may karaniwang tampok na nagbibigay-daan sa iyong gumawa ng 301 na pag-redirect. Hindi mo kailangang mag-imbento ng anuman, sundin lamang ang mga tagubilin sa ibaba.

    Pumunta sa mode ng pamamahala ng site;

    Hanapin ang seksyon ng SEO at pumunta dito;

    Mag-scroll pababa sa pahina sa block na "Redirection: 301 redirect";

    I-click ang "I-set up ang pagpapasa";

    Ilagay ang luma at bagong URL sa naaangkop na mga field;

    Sinusuri namin ang functionality ng pagpapasa.

    Mga karaniwang pag-redirect

    Sa ibaba ay nakolekta namin ang mga pinakakaraniwang opsyon para sa 301 na pag-redirect, na ginawa sa .htaccess file. Sa maraming halimbawa, kailangang palitan ang demo data, kung hindi, hindi gagana nang tama ang pag-redirect.

    301 redirect mula sa http sa https

    Mandatory na pag-redirect kapag lumipat sa isang secure na protocol. Kung nawawala ito, ipapakita sa mga user ang mga page na may iba't ibang protocol, at ang mga duplicate ay isasama sa paghahanap.

    RewriteCond %(HTTPS) !=sa RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

    Ang resulta ng pag-redirect na ito ay idaragdag sa lahat ng mga URL ng site http protocol s.

    301 redirect mula sa www sa WALANG www

    Kung pinili mo ang isang hindi-WWW na domain bilang pangunahing salamin ng website, kailangan mo ng naaangkop na pag-redirect. Ang kanyang halimbawa ay nasa ibaba.

    RewriteCond %(HTTP_HOST) ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1

    Ang resulta ng pag-redirect na ito ay ang "pag-aalis" ng prefix ng "WWW" mula sa lahat ng URL.

    301 redirect mula sa WALANG www sa www

    Kung napili ang isang domain na may WWW bilang pangunahing salamin, kailangan mong idagdag ang kaukulang prefix na “WWW” sa lahat ng URL. Ang pag-redirect sa ibaba ay makakatulong sa iyo dito.

    RewriteCond %(HTTP_HOST) ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1

    Ang resulta ng pag-redirect na ito ay ang pagdaragdag ng prefix na “WWW” sa lahat ng URL.

    301 redirect mula sa isang pahina patungo sa isa pa

    Isa sa pinakasimple at pinakakaraniwang pag-redirect. Kasya sa isang linya. Binibigyang-daan kang permanenteng baguhin ang URL ng isang page, alisin ang mga duplicate at lumang materyales.

    I-redirect ang 301 /page-1/ http://mysite.com/new-page-1/

    Ang resulta ng pagpapatupad ng mga tagubilin sa itaas ay magiging permanenteng pag-redirect mula sa pahina /page-1/ patungo sa pahina /new-page-1/. Sa kasong ito, ang seksyong /page-1/ ay hindi isasama sa paghahanap, at ang /new-page-1/ ay makakatanggap ng lahat ng magagamit na "timbang".

    Mangyaring tandaan sa katulad na paraan Posibleng mag-redirect lamang para sa mga URL na walang mga parameter. Ibig sabihin, para sa pahinang /page-1/?productID=7389 hindi gagana ang command na ito.

    301 redirect mula sa domain patungo sa domain

    Binibigyang-daan kang ganap at walang kundisyon na ilipat ang site sa isa pang domain.

    RewriteEngine Sa RewriteCond %(HTTP_HOST) domain1.ru RewriteRule (.*) http://domain2.ru/$1

    Ang resulta ng pag-redirect sa itaas ay ang pag-redirect ng lahat ng mga kahilingan sa domain1.ru sa domain2.ru.

    301 redirect para sa slash (Alisin ang slash sa dulo)

    Upang matiyak na ang search engine ay hindi magda-download at maglagay ng mga duplicate sa paghahanap, kinakailangang dalhin ang lahat ng URL sa isang format. Nalalapat din ito sa pagkakaroon ng slash sa dulo ng address ng page. Kahit na natutunan ng mga robot na ibukod ang mga duplicate ng ganitong uri mula sa paghahanap, ipinapayong gumawa ng pag-redirect para sa mga site na walang slash.

    RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_URI) ^(.+)/$ RewriteRule ^(.+)/$ /$1

    Ang magiging resulta ay ang "pag-aalis" ng slash sa dulo ng URL.

    301 redirect para sa slash (Magdagdag ng slash sa dulo)

    Ang kabaligtaran ng naunang nabanggit na pag-redirect. Nagdaragdag ng slash sa dulo ng string ng URL.

    RewriteBase / RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_URI) !(.*)/$ RewriteRule ^(.*[^/])$ $1/

    Ang resulta ay "pagdaragdag" ng slash sa dulo ng URL.

    301 redirect mula sa index.php (html)

    Sa marami Mga sistema ng CMS, kabilang ang mga sikat, na may maling setting URL, ang pangunahing pahina ay nagiging accessible pareho sa pamamagitan ng domain name at sa pamamagitan ng domain name + index.php (html). Iyon ay, ang site at site/index.php ay humahantong sa parehong pahina - ang pangunahing pahina. Para sa search engine ang mga ito ay mga duplicate, kaya kailangan mong alisin ang mga ito.

    Halimbawa 1, para sa index.php RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://site/ Halimbawa 2, para sa index.html RewriteCond %( THE_REQUEST) ^(3,9)\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://site/

    Ang resulta ng parehong mga halimbawa ay isang pag-redirect mula sa /index.php (html) sa "ugat ng site", iyon ay, sa domain lamang.

    Bulk 301 na pag-redirect

    Pangunahing ginagamit ang mass 301 redirect kapag binabago ang istraktura ng site, seksyon o uri ng URL address. Hindi tulad ng mga solong pag-redirect mula sa pahina patungo sa pahina, ginagawa ito ayon sa isang partikular na panuntunan, na nalalapat sa lahat ng URL kung saan kinakailangan ang isang pag-redirect.

    Ang ilang mga CMS system bilang default ay gumagamit ng henerasyon ng mga 301 na pag-redirect upang lumikha ng isang CNC address.

    Karamihan sa mga halimbawa sa itaas ay maaaring mauri bilang mass redirect, dahil ang kanilang mga panuntunan ay nalalapat hindi sa isang URL address, ngunit sa lahat ng umiiral na o isang napiling pangkat.

    I-redirect mula sa 404 Not Found page

    Ang paglikha ng isang pag-redirect mula sa isang hindi umiiral na pahina sa pangunahing pahina (o anumang iba pa) ay teknikal na posible. Walang problema dito. Gayunpaman, mula sa isang punto ng SEO na ito ay magiging mali. Kapag nag-a-access ng hindi umiiral na seksyon, ang robot sa pag-index ay dapat makatanggap ng naaangkop na header - 404. Ito ang tanging paraan upang mai-index ng tama ang site. Bilang karagdagan, hindi gusto ng mga search engine malaking bilang pag-redirect, kaya dapat bawasan ang kanilang paggamit sa pinakamababa.

    Halimbawa 1. I-redirect mula sa 404 page patungo sa home page

    Narito ang isang halimbawa ng pag-redirect mula sa lahat ng hindi nahanap na pahina patungo sa pangunahing pahina.

    ErrorDocument 404 http://www.site.com/301.html

    Ang resulta ng pag-redirect na ito ay ang pag-redirect ng lahat ng mga kahilingan sa 404 na pahina sa home page site.

    Halimbawa 2. Mag-redirect mula sa 404 page patungo sa home page sa pamamagitan ng 301 redirect

    SA sa halimbawang ito, sa katunayan, dalawang pag-redirect ang ginagamit, kaya hindi ito tinatanggap ng mga search engine. Gayunpaman, kung kailangan mong gumawa ng permanenteng pag-redirect sa pamamagitan ng 301 redirect, narito ang isang halimbawa.

    ErrorDocument 404 http://www.site.com/301.html RewriteEngine On RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule 301.html http://www.site.com/

    Halimbawa 3. pag-redirect mula sa 404 na pahina sa isang naunang inihanda

    Ang pag-redirect ay maaaring gawin hindi lamang sa pangunahing pahina, kundi pati na rin sa anumang iba pang seksyon. Halimbawa, sa isang paunang inihanda na 404 na pahina ay ganito ang hitsura:

    ErrorDocument 404 /404.html

    Sinusuri ang 301 na pag-redirect

    Pagkatapos mong mag-set up ng 301 redirect, kailangan mong suriin ito para sa tamang operasyon. Upang gawin ito, ipasok ang URL ng pahina kung saan ginawa ang pag-redirect sa address bar ng iyong browser. Kung makakita ka ng bagong page, iyon ay, ang na-redirect mo, pagkatapos ay gumagana nang tama ang lahat.

    Upang matiyak na eksaktong gumana ang 301 redirect, kailangan mong pumunta sa Yandex Webmaster sa seksyong “Tools” -> “Checking server response”.

    Sa field na “Polled URL,” dapat mong ilagay ang address ng page kung saan ka nag-redirect. Ang resulta ng pagsusuri ay dapat na ang HTTP status code na "301 Moved Permanently"

    Kung kapag ina-access ang lumang page ang pag-redirect ay hindi nangyari o ang HTTP status code ay hindi “301 Moved Permanently”, tingnan kung ang pag-redirect ay na-configure nang tama.

    Ano ang gagawin kung hindi gumana ang 301 na pag-redirect?

    Hindi namin mailista ang lahat ng mga dahilan kung bakit maaaring hindi gumana ang isang 301 redirect, ngunit iha-highlight namin ang mga pinakakaraniwan. Narito ang isang listahan ng mga problema dahil sa kung aling pag-redirect ang pinakamadalas na hindi gumagana:

    Ano ang tamang 301 redirect?

    Ang wastong 301 redirect ay nakakatugon sa lahat ng sumusunod na kinakailangan:

    Humahantong sa isang pahina na walang karagdagang pag-redirect. Iyon ay, kung gumawa ka ng isang pag-redirect mula sa pahina A hanggang sa pahina B, pagkatapos ay dapat na wala nang anumang mga pag-redirect mula sa huli (B). Ito dapat ang dulong punto kung saan napupunta ang user;

    Nagre-redirect sa isang page na ang response code ay 200 OK. Iyon ay, simpleng ilagay, sa isang umiiral at naa-access na seksyon. Hindi katanggap-tanggap na mag-redirect sa isang hindi umiiral o pinaghihigpitang pahina;

    Ginawa nang walang syntax at lohikal na mga error;

    Ang 301 redirect ay sadyang pinili. Tiyaking kailangan mo ang isang ito at hindi ang 302 o 307. Ang pagpili ng uri ng pag-redirect ay napakahalaga, dahil mula sa isang SEO point of view, ang pagkakaiba sa pagitan ng mga ito ay pandaigdigan;

    Isang malay na pagpili ang ginawa sa pagitan ng rel="canonical" na katangian at isang permanenteng pag-redirect. Hindi ka dapat gumawa ng mga pag-redirect nang random;

    Kung ganap na natutugunan ng iyong pag-redirect ang lahat ng mga kinakailangan sa itaas, maaari mo itong ituring na mahusay.

    Paano tanggalin ang 301 na pag-redirect?

    Kung kailangan mong alisin ang 301 na mga pag-redirect, kung saan ang pinagmulan ay hindi alam, pagkatapos ay kailangan mong gumawa ng kaunti. mga simpleng hakbang. Upang makumpleto ang mga ito, kakailanganin mo ng access sa CMS, ang root directory ng site at isang mababaw na kaalaman sa php/html.

  • Ang bawat gumagamit ng Internet ay nakatagpo ng pag-redirect (aka "redirect"). Pumili lamang ng anumang site mula sa mga resulta ng paghahanap sa search engine at awtomatikong ire-redirect ka ng search engine sa site. Sa artikulong ito ay pag-uusapan natin kung anong mga uri ng pag-redirect ang umiiral at kung paano i-set up ang mga ito.

    Pangunahing Regular Expression Operator

    Una, tingnan natin ang mga pangunahing operator ng regular na expression (mga flag, modifier, mga espesyal na character):

    Mga espesyal na karakter:

    • ^ — kaliwang limitasyon (simula ng linya);
    • $ — paghihigpit sa kanan (dulo ng linya);
    • .
    • - anumang simbolo;
    • () - variable;
    • \ — pagtakas (ang karakter pagkatapos ng \ ay itinuturing na isang regular na karakter, hindi isang espesyal na karakter);
    • — hanay ng mga halaga;

    !

    • - espesyal na karakter ng negation.
    • Mga Modifier:
    • ?
    — ang simbolo ay inuulit 0 o 1 beses;

    Magsimula tayo sa 301 na pag-redirect sa htaccess. Una, ito ay isang awtomatikong pag-redirect mula sa isang address patungo sa isa pa. Mahusay itong magamit sa kaso kapag ang site ay inilipat mula sa http protocol patungo sa https, kapag ang site ay muling na-configure mula sa "full-size" na mga address patungo sa CNC (ibig sabihin, ito ay https://www.karcher.xyz/content /news/31-01 -2017/razdatka, naging https://www.karcher.xyz/ razdatka), pati na rin para sa "pagdikit" ng mga duplicate na pahina. Pangalawa, ang isang 301 redirect ay nagsasabi sa mga search engine na "guys, ang address na mayroon ka ay hindi na gumagana, kaya pumunta ka doon," at sila ay tulad ng, "OK, isasaalang-alang namin iyon." Kaya, ang pag-redirect ay nangyayari nang walang sakit, nang walang pagkawala ng mga posisyon at link mass.

    Pero ano ang mangyayari kung “Oh, what the hell? Kung mag-abala ako sa mga pag-redirect, magsasayang lang ako ng oras!”? Magagawa mo ito, PERO... mawawala ang kasaysayan ng "luma" na pahina, at ang "bago" ay iraranggo "mula sa simula". Bilang resulta, may pagkawala ng mga posisyon at masa ng link (ito ang pinakamaganda).

    Mga opsyon para sa paggamit ng 301 redirect:

    • Pagsasama ng domain;
    • Ang paglipat ng site sa ibang address (maaaring maging kapaki-pakinabang kung ang site ay nasa ilalim ng anumang mga filter);
    • Upang taasan ang TCI, PR indicator at pataasin ang trapiko kapag bumibili ng isa pang domain (mag-set up ng redirect sa isang mapagkukunan na kailangang pataasin ang TCI at PR);
    • Kapag binabago ang engine ng site (sa kasong ito, ang pag-set up ng 301 na pag-redirect ay mahigpit na kinakailangan, kung hindi, ang kumpletong pagkawala ng trapiko ay ginagarantiyahan);
    • kapag lumilipat mula sa http patungo sa https;
    • gluing "tumatagal"

    atbp., hindi mailista ang lahat ng dahilan.

    301 Redirect kapag binabago ang domain ng pangunahing site

    Kaya, nagpasya kang baguhin ang iyong domain. Agad kaming nagbibigay ng isang handa na solusyon:

    • reworking robots.txt sa lumang domain. Tapos na file text:

    Ahente ng gumagamit: Yandex

    Host:newsite.com

    • mag-set up ng 301 redirect para sa lahat ng page ng site (maliban sa robots.txt file) gamit ang code sa ibaba:

    RewriteCond %(REQUEST_FILENAME) robots.txt$

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

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

    301 redirect kapag binabago ang address ng page

    Ang isang pag-redirect ng pahina (kapag nagbago ang address ng pahina) ay isinasagawa gamit ang code sa ibaba:

    Naka-on ang RewriteEngine

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

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

    Ito ang code na ito na ginagamit kapag "gumagalaw" ng mga pahina, halimbawa, sa isang CNC.

    Mag-set up ng redirect mula sa www sa isang domain na walang www sa htaccess

    Banggitin ang www. sa domain address ay hindi nauugnay sa mahabang panahon. Gayunpaman, ang mga site na may www. kumpleto. Pinagsasama ang mga domain mula sa www. at walang ay dapat gawin sa isang mahigpit na ipinag-uutos na paraan, dahil Nakikita ng mga search engine ang 2 domain na ito bilang 2 magkaibang mga site na may iba't ibang TCI, PR, trapiko, masa ng link at lahat ng iba pa. Samakatuwid, ang isa sa kanila ay ang orihinal, at ang pangalawa ay isang "impostor" na may "ninakaw na nilalaman." Upang maiwasang mangyari ito - mga domain na may www. at kung wala ito ay kinakailangan na "idikit ito" gamit ang 301 redirects. Nasa ibaba ang setup code.

    Ang redirect code mula sa www patungo sa hindi www sa htaccess ay ganito ang hitsura:

    Naka-on ang RewriteEngine
    RewriteCond %(HTTP_HOST) ^www.site.ru$

    Ngayon ay unawain natin ang mga direktiba.

    RewriteEngine on/off - sa simpleng wika ng tao - ito ay nagsisilbing 301 redirect switch.

    RewriteCond - tinutukoy ng direktiba na ito ang mga kundisyon para sa "pagti-trigger" ng susunod na direktiba.

    Ang RewriteRule ay isang direktiba para sa pag-convert ng isang address sa isa pa.

    I-set up ang 301 redirect mula sa http papunta sa https sa pamamagitan ng htaccess

    Itinuturing ng maraming tao ang paglipat mula sa http patungo sa https " modernong kalakaran" Gayunpaman, ngayon ang panukalang ito ay sapilitan (bagaman sa pormal na ito ay hindi). At ngayon ay dumating na ang oras na nakatanggap ka ng SSL certificate, gumagana na ang iyong site sa parehong http at https. Ang lahat na nananatiling i-configure sa .htaccess file ay isang 301 na pag-redirect mula sa http patungo sa mga bersyon ng https ng mga pahina ng site. Ang configuration code ay ibinigay sa ibaba.

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

    At narito ang code para sa isang reverse redirect mula sa https patungo sa http. Tulad ng nakikita mo, ang pagkakaiba ay 1 character lamang:

    RewriteCond %(SERVER_PORT) !^443$

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

    Mag-redirect mula sa mga pahinang index.php, index.html

    Para sa karamihan, pag-uusapan natin ang tungkol sa pagsasama-sama ng mga duplicate, kung saan maaaring mayroong isang malaking bilang.

    Dahil binanggit ang index.php at index.html sa subtitle, nahulaan mo na na sa tulong ng 301 na pag-redirect ay aalisin natin ang mga duplicate ng pangunahing pahina:

    Gayunpaman, kung ang pangunahing pahina ay may duplicate ng form na site.ru/index.php, malamang na ang natitirang mga pahina ay mayroon ding mga duplicate ng form na site.ru/index.php/page.html (na may orihinal na address site. .ru/page.html ). Ito ay masama, kaya nangangailangan din ito ng pag-set up ng 301 redirect gamit ang code sa ibaba:

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

    Kadalasan mayroong mga kaso kapag ang pangunahing pahina ay may duplicate na view

    site.ru/main.html, kung saan kinakailangan ding magrehistro ng 301 na pag-redirect sa site.ru:

    Naka-on ang RewriteEngine

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

    O kahalili:

    I-redirect ang 301 /main.html HYPERLINK "http://site.ru/" http:// site. ru/

    Ngayon, isaalang-alang natin ang kabaligtaran na sitwasyon - kapag gusto mong pagsamahin ang mga duplicate sa pamamagitan ng pag-set up ng pag-redirect mula sa site.ru patungo sa site.ru/main.html. Magagawa mo ito gamit ang code sa ibaba.

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

    RewriteRule .* %1.html

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

    Well, kung mahalaga para sa iyo na ang mga address ng lahat ng panloob na pahina ay ipinapakita nang walang .html sa dulo, pagkatapos ay ang pag-redirect ay na-configure gamit ang sumusunod na code:

    RewriteCond %(REQUEST_URI) \.html$

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

    Ngayon tungkol sa kung paano gumawa ng pag-redirect mula sa pahina patungo sa pahina, ibig sabihin from.htm sa pages.html. Upang i-set up ang gayong pag-redirect, idagdag lamang ang sumusunod na code sa .htaccess:

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

    Nagre-redirect mula sa mga address na may at walang mga slash sa dulo

    Una, tingnan natin ang isa pang uri ng mga duplicate na pahina - mga pahina tulad ng http://site.xyz/page at http://site.xyz/page/ - maliban sa slash sa dulo, hindi sila naiiba. Maaari mong i-configure ang pag-redirect mula sa una hanggang sa pangalawa, at mula sa pangalawa hanggang sa una. Isaalang-alang natin ang parehong mga pagpipilian:

    Mag-redirect mula sa http://site.xyz/page patungo sa http://site.xyz/page/:

    RewriteCond %(REQUEST_FILENAME) !-f

    RewriteCond %(REQUEST_URI) !\..+$

    RewriteCond %(REQUEST_URI) !/$

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

    I-redirect mula sa http://site.xyz/page/ patungo sa http://site.xyz/page:

    RewriteCond %(REQUEST_FILENAME) !-d

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

    RewriteRule ^(.+)/$ /$1

    Bukod dito, hindi mahalaga kung mayroon kang isang slash sa dulo ng address pagkatapos ng pag-redirect o hindi. Ang pangunahing bagay ay ang mga address na ito ay pinagsama-sama gamit ang 301 na pag-redirect.

    I-redirect sa mobile na bersyon site

    Siyempre, kung tumatakbo ang iyong site WordPress engine o Joomla, pagkatapos ay maaari kang mag-set up ng redirect sa mobile na bersyon ng site gamit ang mga plugin.

    Gayunpaman, ang Google ay isang tagasuporta adaptive na disenyo. Samakatuwid, hindi na kailangang maglaan ng hiwalay na domain/subdomain para sa mobile na bersyon. Yung. Sinasabi ng Google na "kung posible na gawin nang walang pag-redirect sa mobile na bersyon, iyon mismo ang dapat mong gawin."

    Ngunit ano ang gagawin kung hindi mo pa rin magawa nang walang ganoong mga pag-redirect?

    Maaari kang mag-configure ng redirect sa pamamagitan ng .htaccess file

    Naka-on ang RewriteEngine

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

    RewriteCond %(REQUEST_URI) ^/$

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

    Pagse-set up ng mobile redirect sa pamamagitan ng PHP

    Kinakailangang gamitin ang espesyal na library ng Mobile Detect, ito ay kinakailangan upang makilala mobile device nanggaling ang gumagamit, o mula sa isang landline.

    $detect = bagong Mobile_Detect;

    kung ($detect->isMobile()) (//code)

    kung ($detect->isTablet()) (//code)

    if ($detect->isiOS()) (// code)

    kung ($detect->isAndroidOS()) (// code)

    Mula sa code na ito ay nagiging malinaw na posibleng makilala hindi lamang ang isang computer/smartphone/tablet, kundi pati na rin ang operating system nito.

    Pag-redirect ng JavaScript

    Ang code sa ibaba ay nagre-redirect sa mobile subdomain. Ang batayan para sa pag-redirect ay resolution ng screen - hanggang sa 480 pixels ang lapad. Ito ay nasa lapad, hindi sa taas.

  • kung (screen.width on

    Paraan 2. Pagse-set up ng redirect sa site.com sa pamamagitan ng .htaccess sa pamamagitan ng paglalagay ng code na ito:

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

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

    Sa parehong (ibig sabihin, ang pangalawa) na paraan, maaari kang mag-set up ng mga pag-redirect mula sa mga lumang address ng kategorya patungo sa mga bago. Bilang default, ganito ang hitsura ng mga link address sa OpenCart:

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

    Napakasakit tingnan ang mga ganitong link, at sa literal na kahulugan, dahil... Nagsisimula na talagang sumakit ang mga mata ko kapag nakikita ko ang mga ganoong address. Sa parehong .htaccess maaari kang mag-configure ng pag-redirect sa mga "tao" na address tulad ng site.com/category gamit ang sumusunod na code:

    RewriteCond %(QUERY_STRING) ^path=83_94_113&route=product/category$

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

    Ngunit kung ano ang gagawin sa mga dynamic na address, na, dahil sa kanilang pagbubuklod sa isang partikular na seksyon, mukhang site.com/katalog?c=okna-pvkh ?

    Matagal nang naghahanap ng solusyon ang mga programmer. Sa random (mas tiyak, pagsubok at error), natagpuan ang isang solusyon. SA sa kasong ito Mayroong pag-redirect sa pangunahing pahina ng site:

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

    RewriteRule katalog http://site.com/?

    Mga tala at pagkakamali

    Ngayon, pag-usapan natin kung paano maiwasan ang mga pagkakamali kapag nagse-set up ng 301 redirect:

    • Ang pagkakasunud-sunod ng mga panuntunan sa pagpapasa ay hindi dapat labagin. Pagkatapos i-set up ang pag-redirect, kailangan mong tiyakin na ang setting ay hindi nagdulot ng anumang " side effects" Kung nilalabag mo ang pagkakasunud-sunod ng mga panuntunan, ang mga dating na-configure na pag-redirect ay maaaring huminto sa paggana o hindi gumana nang tama. Dapat walang kontradiksyon sa mga patakaran.
    • Huwag mag-atubiling gamitin ang mga opisyal na manwal, dahil... Ang mga pag-redirect ng 301 ay may maraming mga tampok dahil sa kanilang kumplikadong syntax. Madaling makaligtaan ang ilang nuance kapag nagse-set up.
    • Pagkatapos ng susunod na "pagtatapos", LAGING nagsasagawa ng isang buong pagsusuri sa paggana ng mga patakaran na ipinatupad nang mas maaga. Ang pagtatakda nang walang pagsuri ay hindi pagtatakda kahit na "para sa palabas". Maaaring i-crash ng isang dagdag na character ang buong site o magawa itong gumana nang hindi tama. Kasunod ng iba pang mga programmer, kailangan naming itama ang operasyon ng site nang higit sa isang beses, kapag may nangyaring 301 na pag-redirect mula sa address na site.com/oldpage patungo sa site.com/newpage, at pagkatapos, gamit ang parehong 301 redirect, isang pag-redirect ang nangyayari bumalik sa site.com/oldpage at higit pa " sa isang bilog."

    Buweno, sa konklusyon, magbibigay kami ng ilang halimbawa kapag hindi mo magagamit ang 301 na pag-redirect.

    Una, "multi-pass", kapag may magkakasunod na serye ng ilang 301 na pag-redirect. Mas tama na mag-set up ng pag-redirect nang direkta sa "pagtatapos" na address.

    Pangalawa, kung sa ilang kadahilanan ay mayroong 2 mga pahina na may duplicate na nilalaman, ngunit kailangan mong i-save ang pareho para sa mga user.

    Pangatlo, nagre-redirect "sa maling lugar". Yung. kung ang pahina ay lumipat mula sa unang address patungo sa pangalawa, at kapag nagse-set up ng isang pag-redirect ay nagkakamali kang ipahiwatig ang address ng isang ganap na naiibang pahina.

    Pang-apat, mag-redirect sa isang pahina na sa ilang kadahilanan ay gumagana nang hindi tama. Dapat gumana nang matatag ang page at ibalik ang alinman sa code 200 o code 404.

    Ikalima, i-redirect ang robots.txt file. Ito ay ipinagbabawal ng mga patakaran ng maraming mga search engine. Bukod dito, maraming tao ang nagkakamali - kapag nag-configure sila ng htaccess redirect sa https mula sa http://site.xyz/robots.txt hanggang https://site.xyz/robots.txt. Ang robots.txt file ay dapat ma-access sa parehong mga address nang walang anumang pag-redirect. Eksaktong pareho ang naaangkop sa xml sitemap.

    Kahit sino pwede magpadala. Ngunit ang pag-redirect ng tama ay isang buong sining. Ngunit mas mahirap i-redirect ang mga user sa ang tamang landas sa Internet. Ang pag-redirect sa php ay pinakaangkop para dito.

    Anong uri ng pag-redirect?

    Sa web programming, lumilitaw ang mga sitwasyon kapag kailangan mong i-redirect ang isang user kasunod ng isang link sa isa pang address. Siyempre, sa unang sulyap, ang pagpapatupad ng gayong pag-redirect ay mukhang medyo "ilegal." Sa pagsasagawa, ang gayong pag-redirect ay hinihiling hindi lamang sa mga umaatake, kundi pati na rin sa mga tapat na webmaster:

    Sa anong mga kaso maaaring kailanganin ang pag-redirect:

    • Kapag ang engine ng site ay pinalitan, ang arkitektura ng buong mapagkukunan ay nagbabago bilang isang resulta. Pagkatapos ay lumitaw ang problema kung paano gumawa ng pag-redirect;
    • Kapag ang istraktura ng isang mapagkukunan ay iginuhit muli, ang buong seksyon o isang materyal ay idinagdag, tatanggalin o ililipat. Habang nangyayari ang prosesong ito, pansamantalang posibleng i-redirect ang user sa nais na seksyon;
    • Kung binago ng site ang domain name nito kamakailan, pagkatapos baguhin ang domain name, lalabas pa rin ang luma sa mga resulta ng paghahanap sa loob ng ilang panahon. Sa kasong ito, ang user ay awtomatikong ire-redirect sa bagong domain ng search engine;
    • Sa panahon ng proseso ng awtorisasyon, bilang panuntunan, sa isang malaking website mayroong dalawang grupo ng mga gumagamit: mga ordinaryong bisita at mga administrator ng mapagkukunan. Sa kasong ito, makatuwirang magpatupad ng pag-redirect para sa bawat user ayon sa kanyang mga karapatan at tungkulin. Pagkatapos ng pahintulot, ang administrator ng site o mga moderator ay pumunta sa administratibong bahagi ng mapagkukunan, at ang mga bisita ay pumunta sa bahagi ng gumagamit ng mapagkukunan.
    Mga tampok ng pag-redirect sa php

    Hindi tulad ng iba php na mga wika ay may ilang mga pakinabang sa pagpapatupad ng pag-redirect:

    • Ang Php ay wika ng server programming. Samakatuwid, ang pag-redirect ay hindi magaganap sa html code ng mga pahinang ipinapakita sa browser, ngunit sa isang script na naka-host sa server;
    • Ang pag-redirect sa php ay maaaring ipatupad sa maraming paraan. Na lubos na nagpapalawak ng aplikasyon nito;
    • Dahil sa pagpoproseso ng data sa server, ang pag-redirect na ipinatupad gamit ang PHP ay hindi gaanong madaling kapitan sa mga epekto ng mga filter ng search engine.

    Upang mag-redirect sa PHP, ginagamit ang header() function. Ito ay ginagamit upang ipadala ang http header. Ang syntax nito ay:

    void header (string $string [, bool $replace = true [, int $http_response_code ]])

    Mga argumentong tinanggap ng function:


    • string $string – header string;

    Mayroong dalawang uri ng argumentong ito. Ang una ay para sa pagpapadala ng code ng katayuan ng koneksyon. Nagsisimula ito sa "HTTP/". Ang ibang uri ay nagpapadala ng status code (REDIRECT 302) sa client browser kasama ang header. Nagsisimula ang argumentong ito sa "Lokasyon:"


    • Ang bool $replace ay isang opsyonal na katangian ng uri ng bool . Responsable sa pag-override sa nakaraang header. Kung itatakda sa true , ang nakaraang header o mga header ng parehong uri ay papalitan. Kung ang argument ay nakatakda sa false , hindi na muling isusulat ang header. Bilang default, ang value na ito ay nakatakda sa true ;
    • http_response_code – pinipilit ng argumento ang HTTP response code. Magiging matagumpay ang pag-install ng code kung walang laman ang string argument.

    Bahagi ang HTTP status code nangungunang linya tugon ng server. Ang code ay binubuo ng tatlong numero, na sinusundan ng paliwanag na teksto sa Ingles. Ang unang digit ay responsable para sa klase ng katayuan. Ang pag-redirect ay tumutugma sa mga code mula 300 hanggang 307. Ang kanilang buong paglalarawan ay matatagpuan sa kaukulang teknikal na dokumentasyon.

    Kapag ginagamit ang header() function para sa isang redirect mga panlabas na link Ang lokasyon ng tawag nito ay napakahalaga. Sa code dapat itong matatagpuan sa itaas ng lahat ng html tag:


    Gamit ang header() redirect

    Para ipakita ang functionality ng function sa isang lokal na server, kailangan mong lumikha ng dalawang file. Tawagan natin ang isa sa kanila na redirect.php , at ang isa pang redirect2.php . Sa loob ng una ay maglalagay kami ng isang function na tawag sa sumusunod na format:

    Sa isa pang file inilalagay namin ang linya:

    echo "Hello! Ikaw ay nasa redirect2.php file";


    Ilang mas praktikal na halimbawa ng paggamit ng redirect sa php:

    • Sapilitang pagpapadala ng code katayuan ng http– kapag ginagamit ang unang argumento ng header() function ng uri ng “lokasyon”, bilang default ang status code na “302” (pansamantalang inilipat) ay ipinapasa sa header. Maaari itong maging problema kapag naglilipat ng resource sa ibang domain name. Sa mga search engine, maaaring magtagal ang naturang pansamantalang pag-redirect. Pagkatapos ng lahat, patuloy na sinusuri ng search engine ang status code. At ang sabi ay "pansamantalang inilipat". Halimbawa ng sapilitang muling pagsusulat ng status code na "302" hanggang "301" (permanenteng inilipat):

    Posible rin ang muling pagsulat sa dalawang yugto. Ang unang linya ay muling isinusulat ang status code, at ang pangalawa ay nagre-redirect sa isang bagong address:

    • Paggamit ng pag-redirect ng mga panlabas na link upang mag-redirect depende sa tungkulin ng user. Ang tungkulin ay tinutukoy sa panahon ng pamamaraan ng pagpapatunay. Ang halaga na ipoproseso ay isinusulat sa $who variable:

    • Pinasimple praktikal na halimbawa pagpapatupad ng panlabas na pag-redirect ng link - ang pag-click sa link ay humahantong sa isang pahina ng php. Mula dito, ililipat ang user sa Rambler sa loob ng 5 segundo. HTML code:

    Pindutin mo ako

    Redirect3.php file code:


    Well, narito kami, natututo ng mga pangunahing kaalaman sa pag-redirect sa PHP. Ngayon ay maaari mong ligtas na gawin ang gawain ng pag-redirect ng mga user sa tamang direksyon. Ang pangunahing bagay ay hindi magkamali sa direksyon, kung hindi, dadalhin mo ang lahat ng iyong mga gumagamit sa site ng ibang tao...

    Gaano kadalas mo kailangang i-redirect ang user sa ibang page? Sigurado akong hindi ito bihira. Maraming mga pamamaraan ang ginagamit upang magawa ang gawaing ito.

    Nagre-redirect sa javascript

    Sa page kung saan mo gustong i-redirect ang user, itakda ang sumusunod na code:

    window.location.href = "http://www.site"

    Sa halip na http://www.site, tukuyin ang pahina kung saan dapat i-redirect ang user. Ang pamamaraan ay hindi gagana kung ang javascript ay hindi pinagana sa browser. Ngunit, tulad ng ipinapakita sa kasanayan, halos lahat ng mga gumagamit ng site ay may pinaganang javascript. Ngunit sa parehong oras ito ay hindi pinagana para sa mga bot sa paghahanap.

    Nagre-redirect gamit ang refresh meta tag

    Samantalahin natin html tag. Ang tag na nagsasaad ng oras ng pag-refresh ng page ay ganito ang hitsura:

    Pipilitin ng tag sa form na ito na i-refresh ang page sa browser pagkatapos ng 5 segundo, na papalitan ang address ng page ng bagong tinukoy sa tag.
    Ngunit hindi kami nasiyahan sa 5 segundo, kaya ang panghuling bersyon ng tag ay ang mga sumusunod:

    < meta http-equiv = "refresh" content = "0;url=http://www.сайт" />

    Ang kawalan ng pag-redirect gamit ang mga tag at javascript ay kung ang site ay inilipat, ang domain ay binago, o ang mga file ay inilipat, ang artikulo ay nananatiling pareho para sa user, ngunit hindi para sa mga search engine. Samakatuwid, kapag naglilipat ng isang site, talagang hindi mo magagamit ang mga pamamaraang ito, dahil ang pangunahing site ay mahuhulog sa mga resulta ng paghahanap dahil sa kawalan nito, at ang bagong site ay hindi lilitaw sa mga resulta dahil sa "plagiarism." Oo, oo, susuriin ng mga search engine ang site bilang plagiarism. At ang site na ito ay nagnakaw ng nilalaman mula sa iyong nakaraang site. Ang mga plagiarists ay makabuluhang mas mababa sa mga resulta ng paghahanap. Huwag magkamali.

    Pag-redirect ng PHP tool

    Simple lang ang lahat dito. Kailangan mong ipadala ang naaangkop na http header

    Sinasabi sa amin ng malungkot na karanasan na hindi dapat pabayaan ang status ng server.
    Ang isa sa aking mga artikulo ay madalas na matatagpuan sa mga resulta ng search engine. Ngunit nagpasya akong ilipat ito sa ibang address. Bilang resulta, ang address A ay binago sa address na B. Gayunpaman, hindi ako nagpadala ng anumang mga header para sa mga bisita upang matugunan ang A. Pagkaraan ng ilang oras, natagpuan din ng mga search bot ang pahina B. Ini-index nila ito, nakitang tumutugma ito sa pahina A, at hindi pinansin. Pagkatapos ay pumunta kami sa pahina A, nakita na ito ay nawala, at tinanggal ito mula sa aming sariling database.
    Bilang resulta, nawala ang aking artikulo sa mga resulta ng search engine.

    Samakatuwid, huwag kalimutang tukuyin ang mga kinakailangang http header kapag naglilipat ng mga materyales.

    Pagpasa sa pamamagitan ng paraan server ng apache(.htaccess)

    Marahil ang pinaka-maginhawang paraan ng pagpapasa. Isang halimbawa ng pag-redirect sa isang bagong domain:

    Kaya, nire-redirect namin ang kahilingan mula sa old.htm file, na matatagpuan sa root directory ng site, sa rewrite.html file, na matatagpuan sa newcategory directory.

    Tulad ng napansin mo na (at ang mga walang oras ay mayroon pa ring huling pagkakataon), sinusuportahan ng RewriteRule mga regular na expression, na nagbibigay-daan sa iyong gawin ang anumang gusto mo sa pag-redirect.
    Halimbawa, gumawa ako ng .htm file na may larawan (RewriteRule ^(.*).htm$ $1.jpg), i.e. mula sa address na dog.htm ini-redirect ako ng browser sa imaheng dog.jpg. Hindi ko gustong ilarawan ang lahat ng mga kakayahan ng mod_rewrite module, kung kaninong tulong kami ngayon ay nagtatrabaho. Maraming mga tutorial ang naisulat tungkol dito, ngunit kung gusto mo, maaari mo itong hanapin sa iyong sarili karagdagang impormasyon tungkol dito. (Halimbawa, sa, gayunpaman, sa Ingles.)

    Ang bentahe ng pamamaraang ito ay walang sakit. Iyon ay, ang paglipat ng mga materyales at kasunod na pag-redirect mula sa lumang address patungo sa bago ay hindi makakaapekto sa posisyon ng site sa anumang paraan. mga search engine. Ang system ay gumagana katulad ng php redirects, maliban na ito ay hindi nangangailangan ng php na mai-install. Ngunit mayroon ding minus: ang pag-redirect sa pamamagitan ng mod-rewrite ay naglo-load ng server nang kaunti pa kaysa sa parehong pag-redirect sa pamamagitan ng php. At ang mod-rewrite module ay hindi palaging naka-install sa Apache. Bagama't ini-install na ito ng karamihan sa mga hoster, mayroon pa ring ilang mga klinikal na kaso kung saan hindi naka-install ang module na ito.

    Piliin ang paraan na pinakaangkop sa iyo at i-install ito sa iyong site!