Ulkoisten linkkien PHP-uudelleenohjaus. Uudelleenohjaus viiveellä ja ajastimella

Tässä artikkelissa näytämme, kuinka voit ohjata sivulta JavaScript-sijaintia käyttämällä. Odottamattomia uudelleenohjauksia pidetään erittäin ärsyttävinä käyttäjien näkökulmasta, koska ne vaikuttavat kielteisesti yleiseen käyttökokemukseen. Jos esimerkiksi ohjaat käyttäjät toiselle sivustolle heti, kun he ovat siirtyneet sinun sivustollesi. Myös, jos ohjaat vieraalle sivulle ajastimella tai sen jälkeen, kun he ovat suorittaneet tietyn toiminnon. Tämä saa käyttäjän haluamaan poistua sivustostasi välittömästi.

Lisäksi hakukoneet eivät suosi resursseja, jotka käyttävät uudelleenohjauksia, varsinkaan jos ne johtavat käyttäjiä harhaan. Mutta on tapauksia, joissa uudelleenohjauksesta voi olla hyötyä. Siksi jätämme sinun päätettävissäsi, käytätkö uudelleenohjausta vai et.

JavaScript-uudelleenohjausmenetelmät

JavaScriptissä ikkunan sijaintia tai sijaintiobjektia käytetään saamaan tietoa nykyisen verkkosivun (asiakirjan) sijainnista ja myös muuttamaan sitä. Alla on luettelo menetelmistä, joita voidaan käyttää JavaScript-uudelleenohjausten toteuttamiseen:

//Asettaa uuden sijainnin nykyiselle ikkunalle. window.location = "http://www.example.com"; //Asettaa uuden hyperlinkin (URL-osoitteen) nykyiselle ikkunalle. window.location.href = "http://www.example.com"; // Määrittää nykyiselle ikkunalle uuden URL-osoitteen. window.location.assign("http://www.example.com"); //Korvaa nykyisen ikkunan sijainnin uudella. ikkuna.sijainti.korvaa("http://www.esimerkki.fi"); //Asettaa itse nykyisen ikkunan sijainnin. self.location = "http://www.example.com"; // Asettaa ylimmän ikkunan sijainnin suhteessa nykyiseen. top.location = "http://www.example.com";

Vaikka yllä olevat JavaScript-koodin rivit tekevät samanlaisen työn, niissä on pieniä eroja. Jos esimerkiksi käytät top.location-uudelleenohjausta iframe-elementin sisällä, tämä pakottaa uudelleenohjauksen pääikkunaan. Toinen asia, joka kannattaa pitää mielessä: location.replace() korvaa nykyisen asiakirjan, poistaa sen historiasta ja tekee siitä käyttökelvottoman selaimen Takaisin-painikkeen kautta.

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

Voit myös tarkistaa tämän sivun saadaksesi lisätietoja siitä, miten window.location toimii.

JavaScript-uudelleenohjaus: uudelleenohjaus latauksen yhteydessä

Jos haluat ohjata käyttäjän toiselle verkkosivustolle heti sivustosi avaamisen jälkeen, voit käyttää seuraavaa koodia sivusi yläosassa, . Tai jos käytät erillistä .js-tiedostoa, sijoita seuraava koodi kyseiseen tiedostoon ja muista viitata siihen sivusi otsikossa:

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

Korvaa vain esimerkki-URL-osoite osoitteella, johon haluat uudelleenohjata. On huomattava, että tämäntyyppisellä uudelleenohjauksella vierailijat eivät näe verkkosivuasi ollenkaan ja heidät ohjataan välittömästi kohdeosoitteeseen.

JavaScript-uudelleenohjaus: uudelleenohjaus tietyn ajan kuluttua

Voit ohjata käyttäjän toiselle sivustolle tietyn ajan kuluttua käyttämällä seuraavaa koodia:

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

Yllä oleva JavaScript-sijainnin href-toiminto ohjaa käyttäjän pois sivulta 3 sekuntia sen jälkeen, kun se on latautunut kokonaan. Voit muuttaa arvoa 3000 (3 x 1000 millisekunteina) tarpeidesi mukaan.

JavaScript-uudelleenohjaus: uudelleenohjaus pois sivulta tapahtuman tai käyttäjän toiminnon jälkeen

Joskus sinun on lähetettävä käyttäjä toiselle sivulle tietyn tapahtuman tai toiminnon jälkeen. Tällaisissa tapauksissa voit käyttää ehtotestausta tai määrittää elementille tapahtuman uudelleenohjauksen suorittamiseksi. Harkitse seuraavia kahta esimerkkiä:

// Tarkista, onko ehto tosi ja ohjaa sitten uudelleen. jos (...) ( window.location.href = "http://www.example.com"; )

Yllä oleva dokumentin sijainnin href JavaScript-koodi suorittaa uudelleenohjauksen, jos ehto on tosi:

// onclick-tapahtuma on liitetty #button-elementtiin. document.getElementById("painike").onclick = function() ( window.location.href = "http://www.example.com"; );

Yllä oleva koodi suorittaa uudelleenohjauksen, kun käyttäjä napsauttaa #button-elementtiä.

Näin uudelleenohjaukset toimivat JavaScriptissä. Toivomme, että nämä esimerkit auttavat sinua järjestämään verkkosivujen uudelleenohjauksia.

Esimerkkejä uudelleenohjauksista tai uudelleenohjauksista toiselle sivulle.

Uudelleenohjaus HTML:ssä // Päivitä sivu 5 sekunnin kuluttua: // Ohjaa osoitteeseen https://www.google.com 5 sekunnin kuluttua: // Uudelleenohjaus osoitteeseen https://www.google.com välittömästi: Uudelleenohjaus JavaScriptissä

Replace()-menetelmän avulla voit korvata yhden sivun toisella siten, että tämä korvaus ei heijastu selaimen HTML-sivujen katseluhistoriaan (historiaan).

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

Reload()-menetelmä simuloi täysin selaimen käyttäytymistä, kun napsautat työkalupalkin uudelleenlatauspainiketta. Jos kutsut menetelmää ilman argumenttia tai asetat sen arvoon true , selain tarkistaa dokumentin viimeisimmän muokkausajan ja lataa sen joko välimuistista (jos dokumenttia ei ole muokattu) tai palvelimelta. Tämä toiminta vastaa uudelleenlatauspainikkeen napsauttamista. Jos määrität argumentiksi false, selain lataa nykyisen asiakirjan uudelleen palvelimelta. Tämä toiminta vastaa reload-painikkeen ja näppäimistön vaihtopainikkeen (reload+shift) painamista samanaikaisesti.

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

Seuraavat esimerkit ohjaavat myös Googleen:

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

SetTimeout-toiminnolla on mahdollista toteuttaa uudelleenohjausviive ennen uudelleenohjauksen suorittamista (esimerkissä - 5 sekuntia):

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

Yksinkertainen esimerkki uudelleenohjauksesta ajastimella:

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

Odota 10 sekuntia tai seuraa tätä linkkiä: https://www.google.com

Uudelleenohjaus PHP:ssä

PHP:ssä on header()-toiminto, jonka avulla voit paitsi korvata vakiootsikoita myös lisätä uusia.

Syntaksi:

// merkkijono on otsikon kokonaan muodostunut merkkijono, joka on lisättävä (ilman loppurivin syöttöä "\n") // korvaa määrittää, korvataanko samannimiset otsikot (tosi) vai liitetäänkö sen loppuun ( false) // http_response_code määrittää http-vastauskoodin (300, 301, 302 jne.) void header (merkkijono [, bool korvaa = tosi [, int http_response_code]]);

Esimerkkejä käytöstä:

Header("Päivitä: 0; url=/error404.html"); // uudelleenohjaus virhesivulle välittömästi (viipeämättä) header("Refresh: 5; url=https://www.google.com/"); // uudelleenohjaa Rambler-pääsivulle 5 sekuntia sivun latautumisen jälkeen. header("Sijainti: /", tosi, 307); // uudelleenohjaa sivuston pääsivulle 307-uudelleenohjauksella. header("Sijainti: /artikkeli/sivu.htm", true, 303); // käytä 303-uudelleenohjausta uudelleenohjataksesi sivuston sisäiselle sivulle. header("Sijainti: http://google.ru/search?q=redirect"); // käyttämällä 302-uudelleenohjausta, uudelleenohjaa Google-hakuun sanoilla redirect (Käytettäessä Sijaintia määrittämättä uudelleenohjauskoodia, 302 on oletuksena käytössä). header("Sijainti: http://yandex.ru/yandsearch?text=redirect", tosi, 301); // tee uudelleenohjaus käyttämällä 301-uudelleenohjausta etsiäksesi sanan uudelleenohjaus Yandexistä.

Uudelleenohjaa HTML PHP:hen:

Uudelleenohjaus

Tässä sleep()-parametri voi sisältää viiveen uudelleenohjaukselle.

Lataat tämän tiedoston sivuston juurihakemistosta (jos tämä on WordPress-blogi, missä wp-config.php-tiedosto sijaitsee). Syötä sen jälkeen php-uudelleenohjaukseen tarvittavat linkit seuraavasti:

http://sivustosi/go.php?url=http://minne_olemme menossa

Ymmärrät, että tässä tapauksessa viittauslinkin piilottamisesta ei ole kysymys. Siksi on järkevää muuttaa hieman go.php-tiedoston koodia seuraavaksi:

Tässä tapauksessa koodin oikean tekstin sijaan laitamme viittauslinkin. Mutta sitten yhdessä PHP-tiedostossa voimme asettaa uudelleenohjauksen vain yhdelle viitteelle. linkkejä, joten joudut luomaan useita tiedostoja kullekin vaihdolle erikseen, kuten gosape.php, goggl.php jne. Samalla olisi hyvä idea sulkea tiedostojen indeksointi PHP-uudelleenohjauksella robots.txt go.php -tiedostossa:

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

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

Tai olisi helpompi sulkea koko hakemiston indeksointi ja lisätä kaikki php-tiedostot sinne.

Linkkien uudelleenohjaus htaccessin kautta

Linkkien uudelleenohjaus voidaan järjestää PHP-tiedoston lisäksi myös kirjoittamalla vastaava uudelleenohjausohje .htaccess-tiedostoon. Löydät sen sivuston juurihakemistosta. Lisäksi mod_rewrite-moduulin on oltava käytössä isännöinnissä (useimmissa tapauksissa se on). Komennon syntaksi on seuraava:

Uudelleenohjaa URL-polun URL-osoite

  • tila: valinnainen kenttä, määrittää palautuskoodin, kelvolliset arvot:
    • pysyvä (301 - asiakirja on siirretty pysyvästi)
    • lämpötila (302 - asiakirja on siirretty väliaikaisesti)
    • seeother (303 - katso muut)
    • poissa (410 - poistettu)
  • URL-polku: valelinkki.
  • URL: oikea linkki
RewriteEngine uudelleenohjauksessa /gosape http://www.sape.ru/12345.php

RewriteEngine uudelleenohjauksessa /gosape http://www.sape.ru/12345.php

Siten, kun napsautat linkkiä http://mysite.ru/gosape, käyttäjä ohjataan sapen verkkosivustolle viittauslinkillä. Kiitos tämän artikkelin kirjoittajalle menetelmästä.

PHP-uudelleenohjauslinkit kahdessa vaiheessa

Yhdestä blogista löysin toisen ulkoisten linkkien piilottamisesta. Tee tämä luomalla sivuston juurihakemistoon kansio, esimerkiksi sivut, ja sijoittamalla sinne 3 tiedostoa:

1.linkslist.php – tallentaa joukon ulkoisia (viittaus)linkkejä uudelleenohjausta varten, sen koodi:

2. redirect.php – php-skripti linkin analysointiin ja uudelleenohjauksen suorittamiseen:

3. .htaccess-tiedosto – lähettää pyynnöt redirect.php-skriptille.

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

Tämän jälkeen voit sijoittaa blogisi tai verkkosivustosi sivuille linkkejä, kuten http://sivuston_nimi/sivut/get/sivu1.html, jossa sivu1.html on määritelty linkslist.php-tiedostossa ja vastaa todellista linkkiä jonka käyttäjä ohjataan uudelleen. Menetelmän laatija asetti linkin koko käsittelyprosessin seuraavaan kaavioon:

Periaatteessa itse pidin eniten viimeisestä menetelmästä, josta erityiset kiitokset Vladimir Statsenkolle, joka julkaisi sen blogissaan. On erittäin kätevää, että kaikki uudelleenohjauslinkit voidaan sijoittaa yhteen tiedostoon hyvin yksinkertaisessa ja visuaalisessa muodossa.

Tietysti voit piilottaa viittauslinkit laajennuksilla, mutta olen taipuvaisempia käyttämään yksinkertaisia ​​menetelmiä ilman kolmansien osapuolien sovelluksia, jos mahdollista. Tulevaisuudessa kuitenkin harkitsen pari esimerkkiä.

Mitä menetelmää käytät viittauslinkkien piilottamiseen ja miksi?

P.S. Vartija. WebPromo-yritys tarjoaa sivuston hakukonemainontaa ja sen mainostamista Googlessa ja Yandexissä.
Jos et tiedä, kuinka estää ajokortin menettäminen, suosittelemme hakemaan maksutonta konsultaatiota autojuristilta.
Lensmaster on piilolinssien verkkokauppa, joka toimitetaan kaikkialle Kiovaan ja Ukrainaan.

Uudelleenohjaus on käyttäjän automaattinen uudelleenohjaus osoitteesta toiseen. Eli henkilö siirtyy yhdelle sivustolle, mutta päätyy täysin toiselle (tai yhden sivuston toiselle sivulle). Luulen, että olet nähnyt tämän melko usein. Joskus uudelleenohjaus tapahtuu viiveellä. Yleisesti ottaen aihe on erittäin tärkeä, ja käsittelen sitä tässä artikkelissa.

Yleisesti ottaen puhumme nyt Location-objektista, joka on Dokumentti-objektin ominaisuus. Sijainti-objektissa on href-ominaisuus, jota käytetään uudelleenohjauksen toteuttamiseen JavaScriptiin. Tämä ominaisuus on sekä luettava että kirjoitettava. Ensin luetaan se:

Document.write(document.location.href);

Tämän seurauksena näet skriptisi täydellisen osoitteen.

Tehdään nyt yksinkertainen uudelleenohjaus JavaScriptiin:

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

Siten kaikki käyttäjät, jotka suorittavat tämän komentosarjan, menevät automaattisesti sivustolle: "http://site".

Tehdään nyt klassinen tehtävä, joka toteutetaan hyvin usein. Oletetaan, että sinulla oli verkkosivusto: http://a.ru. Sitten ostit uuden verkkotunnuksen verkkosivustollesi ja sen osoitteeksi tuli: http://b.ru. Ja haluat kaikkien vierailijoiden siirtyvän osoitteesta http://a.ru uuteen http://b.ru:hun. Lisäksi haluat heidän tietävän, että sivustollasi on uusi osoite. Onko tilanne tuttu? Joten tämä toteutetaan käyttämällä uudelleenohjausta viiveellä:


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

Verkkosivustollamme on uusi osoite: http://b.ru. 5 sekunnin kuluttua sinut ohjataan siihen. Jos näin ei tapahdu, siirry osoitteeseen: http://b.ru

Ensin käyttäjä näkee viestin ja 5 sekunnin kuluttua hän siirtyy uuteen osoitteeseen. Jos käyttäjä on yhtäkkiä poistanut JavaScriptin käytöstä, hän voi navigoida itsenäisesti napsauttamalla linkkiä.