PHP presmerovanie externých odkazov. Presmerovanie s oneskorením a časovačom odpočítavania

V tomto článku si ukážeme, ako môžete presmerovať zo stránky pomocou umiestnenia JavaScript. Neočakávané presmerovania sú z pohľadu používateľov považované za veľmi nepríjemné, pretože negatívne ovplyvňujú celkový zážitok. Napríklad, ak používateľov presmerujete na inú stránku ihneď po tom, ako prejdú na tú vašu. Tiež, ak smerujete na cudziu stránku na časovači alebo po vykonaní určitej akcie. Používateľ tak bude chcieť okamžite opustiť vašu stránku.

Okrem toho vyhľadávače neuprednostňujú zdroje, ktoré používajú presmerovania, najmä ak zavádzajú používateľov. Existujú však prípady, kedy môže byť presmerovanie užitočné. Preto necháme na vás, aby ste sa rozhodli, či presmerovanie použijete alebo nie.

JavaScript metódy presmerovania

V JavaScripte sa umiestnenie okna alebo objekt umiestnenia používa na získanie informácií o umiestnení aktuálnej webovej stránky (dokumentu) a tiež na jej zmenu. Nižšie je uvedený zoznam metód, ktoré možno použiť na implementáciu presmerovaní JavaScriptu:

//Nastaví nové umiestnenie pre aktuálne okno. window.location = "http://www.example.com"; //Nastaví nový hypertextový odkaz (URL) pre aktuálne okno. window.location.href = "http://www.example.com"; // Priradí novú adresu URL aktuálnemu oknu. window.location.assign("http://www.example.com"); //Nahradí pozíciu aktuálneho okna novým. window.location.replace("http://www.example.com"); //Nastaví umiestnenie samotného aktuálneho okna. self.location = "http://www.example.com"; // Nastaví polohu najvyššieho okna vzhľadom na aktuálne. top.location = "http://www.example.com";

Hoci vyššie uvedené riadky kódu JavaScript vykonávajú podobnú prácu, majú malé rozdiely. Ak napríklad použijete presmerovanie top.location vnútri prvku iframe, vynúti si to presmerovanie do hlavného okna. Ďalšia vec, ktorú treba mať na pamäti: location.replace() nahradí aktuálny dokument, odstráni ho z histórie a zneprístupní ho cez tlačidlo Späť v prehliadači.

window.location.href = "http://www.example.com";

Môžete sa tiež pozrieť na túto stránku, kde sa dozviete viac o tom, ako funguje window.location.

Presmerovanie JavaScriptu: presmerovanie pri načítaní

Ak chcete presmerovať používateľa na inú webovú stránku ihneď po otvorení vašej lokality, môžete použiť nasledujúci kód v hornej časti vašej stránky v rámci . Prípadne, ak používate samostatný súbor .js, vložte do tohto súboru nasledujúci kód a nezabudnite naň odkazovať v hlavičke svojej stránky:

window.location.href = "http://www.example.com";

Jednoducho nahraďte vzorovú adresu URL adresou, na ktorú chcete presmerovať. Treba si uvedomiť, že pri tomto type presmerovania návštevníci neuvidia vašu webovú stránku vôbec a budú okamžite presmerovaní na cieľovú adresu.

JavaScript presmerovanie: presmerovanie po určitom čase

Ak chcete používateľa po určitom čase presmerovať na inú stránku, môžete použiť nasledujúci kód:

setTimeout(function() ( window.location.href = "http://www.example.com"; ), 3000);

Funkcia href pre umiestnenie JavaScriptu uvedená vyššie presmeruje používateľa preč zo stránky 3 sekundy po jej úplnom načítaní. Hodnotu 3 000 (3 x 1 000 v milisekundách) môžete zmeniť podľa svojich potrieb.

Presmerovanie JavaScript: presmerovanie preč zo stránky po udalosti alebo akcii používateľa

Niekedy po určitej udalosti alebo akcii potrebujete používateľa poslať na inú stránku. V takýchto prípadoch môžete použiť testovanie stavu alebo priradiť udalosť k prvku na vykonanie presmerovania. Zvážte nasledujúce dva príklady:

// Skontrolujte, či je podmienka pravdivá, a potom presmerujte. if (...) ( window.location.href = "http://www.example.com"; )

Kód JavaScript href pre umiestnenie dokumentu vyššie vykoná presmerovanie, ak je podmienka pravdivá:

// udalosť onclick je priradená k prvku #button. document.getElementById("tlačidlo").onclick = function() ( window.location.href = "http://www.example.com"; );

Vyššie uvedený kód vykoná presmerovanie, keď používateľ klikne na prvok #button.

Takto fungujú presmerovania v JavaScripte. Dúfame, že vám tieto príklady pomôžu pri organizovaní presmerovaní webových stránok.

Príklady presmerovaní alebo presmerovaní na inú stránku.

Presmerovanie v HTML // Obnovenie stránky po 5 sekundách: // Presmerovanie na https://www.google.com po 5 sekundách: // Okamžité presmerovanie na https://www.google.com: Presmerovanie v JavaScripte

Metóda replace() vám umožňuje nahradiť jednu stránku druhou tak, že sa toto nahradenie neprejaví v histórii prehliadania HTML stránok (histórii) prehliadača

Location.replace("https://www.google.com"); document.location.replace("https://www.google.com");

Metóda reload() úplne simuluje správanie prehliadača, keď kliknete na tlačidlo reload na paneli nástrojov. Ak metódu zavoláte bez argumentu alebo ju nastavíte na hodnotu true , prehliadač skontroluje čas poslednej úpravy dokumentu a načíta ho buď z vyrovnávacej pamäte (ak dokument nebol upravený) alebo zo servera. Toto správanie zodpovedá kliknutiu na tlačidlo znovu načítať. Ak zadáte hodnotu false ako argument, prehliadač znova načíta aktuálny dokument zo servera. Toto správanie zodpovedá súčasnému stlačeniu opätovného načítania a tlačidla posunu klávesnice (reload+shift).

Window.location.reload("https://www.google.com");

Nasledujúce príklady tiež presmerujú na Google:

Location="https://www.google.com"; document.location.href="https://www.google.com";

Pomocou funkcie setTimeout je možné implementovať oneskorenie presmerovania pred vykonaním presmerovania (v príklade - 5 sekúnd):

SetTimeout("location="https://www.google.com";", 5000);

Jednoduchý príklad presmerovania s časovačom:

varsec=10; function Sec() ( document.getElementById("sec")).innerHTML=sec; sec--; if(sec==1) ( location.replace("https://www.google.com") ) setTimeout(" Sec()",1000); ) Sec();

Počkajte 10 sekúnd alebo kliknite na tento odkaz: https://www.google.com

Presmerovanie v PHP

PHP má funkciu header(), ktorá umožňuje nielen nahradiť štandardné hlavičky, ale aj pridať nové.

Syntax:

// reťazec je úplne vytvorený reťazec hlavičky, ktorý je potrebné pridať (bez koncového riadku "\n") // nahradiť určuje, či sa majú hlavičky s rovnakými názvami nahradiť (true) alebo pripojiť na koniec ( false) // http_response_code určuje http kód odpovede (300, 301, 302 atď.) void header (reťazec reťazca [, bool nahradiť = true [, int http_kód_odpovede]]);

Príklady použitia:

Hlavička("Obnoviť: 0; url=/error404.html"); // presmerovanie na chybovú stránku okamžite (bez oneskorenia) header("Refresh: 5; url=https://www.google.com/"); // presmerovanie na hlavnú stránku Rambler 5 sekúnd po načítaní stránky. header("Umiestnenie: /", true, 307); // presmerovanie na hlavnú stránku webu pomocou presmerovania 307. header("Umiestnenie: /clanok/stranka.htm", true, 303); // použite presmerovanie 303 na presmerovanie na internú stránku webu. header("Umiestnenie: http://google.ru/search?q=redirect"); // pomocou presmerovania 302 presmerovanie na vyhľadávanie Google pre slová presmerovanie (Pri použití polohy bez zadania kódu presmerovania sa predvolene použije 302). header("Umiestnenie: http://yandex.ru/yandsearch?text=redirect", true, 301); // urobte presmerovanie pomocou presmerovania 301 na vyhľadanie slova presmerovanie v Yandex.

Presmerovanie HTML na PHP:

Presmerovanie

Tu môže parameter sleep() obsahovať oneskorenie pre presmerovanie.

Tento súbor nahráte z koreňového adresára stránky (ak ide o blog WordPress, tak tam, kde sa nachádza súbor wp-config.php). Potom zadajte odkazy potrebné na presmerovanie php takto:

http://your_site/go.php?url=http://kam ideme

Chápete, že v tomto prípade nejde o skrytie odkazu na sprostredkovanie. Preto má zmysel mierne zmeniť kód v súbore go.php na nasledujúci:

V tomto prípade namiesto skutočného textu do kódu vložíme odkaz na sprostredkovanie. Ale potom v jednom súbore PHP budeme môcť nastaviť presmerovanie iba pre jeden ref. odkazy, takže budete musieť vytvoriť niekoľko súborov pre každú výmenu samostatne, napríklad gosape.php, goggl.php atď. Zároveň by bolo dobré uzavrieť indexovanie súborov pomocou PHP presmerovania v robots.txt go.php:

User-agent : * Disallow : /go.php Disallow : /gosape.php Disallow : /goggl.php

User-agent: * Disallow: /go.php Disallow: /gosape.php Disallow: /goggl.php

Alebo by bolo jednoduchšie zavrieť indexovanie celého adresára a pridať tam všetky php súbory.

Presmerovanie odkazov cez htaccess

Presmerovanie pre odkazy môže byť organizované nielen prostredníctvom súboru PHP, ale aj napísaním zodpovedajúcej smernice Redirect do súboru .htaccess. Nájdete ho v koreňovom adresári stránky. Okrem toho musí byť na hostingu povolený modul mod_rewrite (vo väčšine prípadov je). Syntax príkazu je nasledovná:

Presmerovať URL-cesta URL

  • stav: nepovinné pole, definuje návratový kód, platné hodnoty:
    • trvalé (301 – dokument bol natrvalo presunutý)
    • temp (302 – dokument bol dočasne presunutý)
    • seeother (303 - pozri ďalšie)
    • preč (410 – odstránené)
  • URL-path: fiktívny odkaz.
  • URL: skutočný odkaz
RewriteEngine on Redirect /gosape http://www.sape.ru/12345.php

RewriteEngine on Redirect /gosape http://www.sape.ru/12345.php

Po kliknutí na odkaz http://mysite.ru/gosape sa teda používateľ dostane na webovú stránku sape s odkazom na sprostredkovanie. Ďakujem autorovi tohto článku za metódu.

PHP presmerovanie odkazov v dvoch fázach

V jednom z blogov som našiel ďalší o tom, ako skryť externé odkazy. Ak to chcete urobiť, vytvorte priečinok v koreňovom adresári lokality, napríklad s názvom pages, a umiestnite tam 3 súbory:

1.linkslist.php – ukladá pole externých (referral) odkazov pre presmerovanie, jeho kód:

2. redirect.php – php skript na analýzu odkazu a vykonanie presmerovania:

3. Súbor .htaccess – odosiela požiadavky skriptu redirect.php.

Možnosti +FollowSymlinks RewriteEngine On RewriteRule ^get/(.+) /pages/redirect.php/$1 [L]

Potom môžete na stránky svojho blogu alebo webovej lokality umiestniť odkazy ako http://site_name/pages/get/page1.html, kde page1.html je definovaná v súbore linkslist.php a zodpovedá skutočnému odkazu na na ktorú bude používateľ presmerovaný. Autor metódy umiestnil celý proces spracovania odkazu do nasledujúceho diagramu:

Mne osobne sa v zásade najviac páčila posledná metóda, za čo špeciálne ďakujem Vladimírovi Statsenkovi, ktorý ju zverejnil na svojom blogu. Je veľmi výhodné, že všetky odkazy na presmerovanie môžu byť umiestnené v jednom súbore vo veľmi jednoduchej a vizuálnej forme.

Samozrejme, na skrytie odkazov na sprostredkovanie môžete použiť pluginy, ale ja sa prikláňam skôr k jednoduchým metódam, bez použitia aplikácií tretích strán, ak je to možné. Napriek tomu v budúcnosti ešte zvážim niekoľko príkladov.

Akú metódu používate na skrytie odkazov na sprostredkovanie a prečo?

P.S. Stráž. Spoločnosť WebPromo zabezpečuje propagáciu stránky pre vyhľadávače a jej propagáciu v službách Google a Yandex.
Ak neviete, ako zabrániť odňatiu vodičského preukazu, odporúčame vám vyhľadať bezplatnú konzultáciu s automobilovým právnikom.
Lensmaster je internetový obchod s kontaktnými šošovkami s doručením po celom Kyjeve a Ukrajine.

Presmerovanie je automatické presmerovanie používateľa z jednej adresy na druhú. To znamená, že človek prejde na jednu stránku, ale skončí na úplne inej (alebo na inej stránke jedného webu). Myslím, že ste to videli dosť často. Niekedy sa presmerovanie vykoná s oneskorením. Vo všeobecnosti je téma veľmi dôležitá a budem o nej diskutovať v tomto článku.

Vo všeobecnosti budeme teraz hovoriť o objekte Location, ktorý je vlastnosťou objektu Document. Objekt Location má vlastnosť href, ktorá sa používa na implementáciu presmerovania na JavaScript. Táto vlastnosť je čitateľná aj zapisovateľná. Najprv si to prečítame:

Document.write(document.location.href);

Výsledkom je, že uvidíte úplnú adresu svojho skriptu.

Teraz urobme jednoduché presmerovanie na JavaScript:

Document.location.href = "http://site";

Všetci používatelia, ktorí spustia tento skript, teda automaticky prejdú na stránku: „http://site“.

Teraz urobme klasickú úlohu, ktorá sa implementuje veľmi často. Povedzme, že máte webovú stránku: http://a.ru. Potom ste si kúpili novú doménu pre svoju webovú stránku a jej adresa sa stala: http://b.ru. A chcete, aby sa všetci návštevníci presunuli z http://a.ru na novú http://b.ru. Okrem toho chcete, aby vedeli, že vaša stránka má novú adresu. Je vám situácia známa? Takže sa to implementuje pomocou presmerovania s oneskorením:


oneskorenie var = 5000;
setTimeout("document.location.href="http://b.ru"", oneskorenie);

Naša webová stránka má novú adresu: http://b.ru. Po 5 sekundách budete naň presmerovaní. Ak sa tak nestane, prejdite na adresu: http://b.ru

Po prvé, používateľ uvidí správu a po 5 sekundách prejde na novú adresu. Ak má používateľ náhle vypnutý JavaScript, potom môže navigovať sám jednoduchým kliknutím na odkaz.