Preusmjeravanje na drugu stranicu pomoću JavaScripta. Četiri opcije preusmjeravanja: Java Script, html, php i htaccess

Preusmjeravanje je automatsko preusmjeravanje korisnika s jedne adrese na drugu. Odnosno, osoba ode na jedno mjesto, ali završi na sasvim drugom (ili na drugoj stranici jednog mjesta). Mislim da si ovo često viđao. Ponekad se preusmjeravanje vrši s odgodom. Općenito, tema je vrlo važna i o njoj ću raspravljati u ovom članku.

Općenito govoreći, sada ćemo govoriti o objektu Location, koji je svojstvo objekta Document. Objekt Location ima svojstvo href koje se koristi za implementaciju preusmjeravanja na JavaScript. Ovo svojstvo je i čitljivo i za pisanje. Prvo, pročitajmo:

Document.write(document.location.href);

Kao rezultat, vidjet ćete punu adresu vaše skripte.

Sada napravimo jednostavno preusmjeravanje na JavaScript:

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

Dakle, svi korisnici koji pokreću ovu skriptu automatski će otići na stranicu: "http://site".

Sada napravimo klasičan zadatak koji se vrlo često provodi. Recimo da imate web stranicu: http://a.ru. Zatim ste kupili novu domenu za svoju web stranicu i njena adresa je postala: http://b.ru. I želite da se svi posjetitelji presele s http://a.ru na novi http://b.ru. Štoviše, želite da znaju da vaša stranica ima novu adresu. Je li situacija poznata? Dakle, ovo se implementira pomoću preusmjeravanja s odgodom:


promjenljivo kašnjenje = 5000;
setTimeout("document.location.href="http://b.ru"", kašnjenje);

Naša web stranica ima novu adresu: http://b.ru. Nakon 5 sekundi bit ćete preusmjereni na njega. Ako se to ne dogodi, idite na: http://b.ru

Prvo će korisnik vidjeti poruku, a nakon 5 sekundi otići će na novu adresu. Ako je korisniku iznenada onemogućen JavaScript, tada se može kretati sam jednostavnim klikom na vezu.

30.09.16. 6K

HTML preusmjeravanja igraju važnu ulogu za velike web projekte. Mogućnost preusmjeravanja prometa s jedne stranice na drugu pomaže u boljem upravljanju protokom posjetitelja i restrukturiranju resursa.

Pomoću preusmjeravanja korisnici mogu slati poruke s istim sadržajem na različitim domenama bez da budu klasificirani kao dupli sadržaj. Osim toga, preusmjeravanja domene su učinkovit način za optimizaciju tražilice.

Preusmjeravanja se izvode pomoću .htaccess, PHP skripte, HTML meta oznaka i JavaScripta.

Preusmjeravanje domene stranice

Preusmjeravanja se koriste za obavještavanje poslužitelja da je sadržaj stranice premješten s jednog URL-a na drugi. To se mora učiniti kada je izvorna web adresa (cilj dolazne veze) visoko rangirana na popisu rezultata tražilice (SERP). U ovom slučaju, preusmjeravanje govori robotu za pretraživanje da je željeni sadržaj premješten, pružajući korisniku poveznicu na novu adresu.

Bez takvih preusmjeravanja, webmasteri bi se suočili sa stranicom s pogreškom 404 umjesto stranice koju su tražili. To je nešto što komercijalni izvori posebno žele izbjeći. Mrežne trgovine nude asortiman proizvoda koji se stalno mijenja i koji su prikazani na mnogim stranicama. Nakon što se proizvod više ne prodaje, potencijalni se kupci preusmjeravaju na stranicu sa sličnim proizvodom. To vam omogućuje učinkovitije upravljanje protokom posjetitelja, kao i smanjenje stope napuštanja stranice.

Osim toga, preusmjeravanje omogućuje da isti sadržaj bude dostupan na različitim web adresama. Sve alternativne adrese preusmjeravaju se prema prioritetnoj domeni stranice:

Vrste preusmjeravanja

Postoje HTML meta preusmjeravanja na strani klijenta i na strani poslužitelja. U slučaju preusmjeravanja poslužitelja, HTTP statusni kodovi se prenose korisničkim agentima (preglednicima i robotima za pretraživanje).

Kada su u pitanju preusmjeravanja na strani klijenta, stvari izgledaju drugačije: izvršavaju se bez odgovora i ne šalju se statusni kodovi. Zbog toga svi sustavi ne podržavaju preusmjeravanje. To može dovesti do situacija u kojima posjetitelji ostaju na originalnoj stranici i ne budu preusmjereni na novu stranicu.

Takvi nedostaci čine korištenje preusmjeravanja poslužitelja poželjnijim. Stoga bi se rješenja na strani klijenta trebala koristiti samo kada preusmjeravanje domene na strani poslužitelja nije moguće zbog tehničkih prepreka.

Preusmjeravanja poslužitelja

U većini slučajeva preusmjeravanja domene na strani poslužitelja izvode se putem konfiguracijske datoteke .htaccess ili PHP skripte. Prednost ovih metoda je u tome što možete pojedinačno odrediti koji HTTP statusni kod treba biti prikazan korisničkom agentu. To webmasterima omogućuje označavanje preusmjeravanja kao trajna ili privremena.

Ispod su stvarni HTTP statusni kodovi 301 i 302:

  • preusmjeravanje 301 HTML - trajno premješteno: traženi resurs sada je trajno dostupan na novom URL-u. Stari URL od sada postaje nevažeći;
  • 302 – privremeno premješteno: traženi resurs dostupan je na novom URL-u. Međutim, izvorni URL i dalje ostaje relevantan.

Ako HTTP statusni kod nije eksplicitno definiran, poslužitelj šalje statusni kod 302 tijekom preusmjeravanja. Ovo nije uvijek potrebno i preporučuje se ručni unos željenog statusnog koda svaki put kada preusmjeravate, jer to smanjuje mogućnost pogreške indeksiranja kao što je slučaj hakiranja URL-a. Za razliku od preusmjeravanja 301, statusni kod 302 govori alatima za indeksiranje da izvorni URL treba ostati indeksiran. Adresa za preusmjeravanje namijenjena stalnom radu natječe se s adresom navedenom u indeksu tražilice.

Preusmjeravanje putem .htaccess

Htaccess je konfiguracijska datoteka na Apache poslužitelju koja se koristi za brisanje središnje konfiguracije na razini direktorija. Ova datoteka omogućuje administratorima web mjesta postavljanje postavki specifičnih za direktorije za domene i njihove poddirektorije. Jedna od funkcija datoteke .htaccess uključuje preusmjeravanje pojedinačnih adresa na strani poslužitelja na druge URL-ove.

Nakon što se .htaccess datoteka sa sljedećim kodom postavi u glavne direktorije, zahtjevi za originalnu domenu preusmjeravaju se sa strane poslužitelja na domenu www.example.com ‘ ‘:

Htaccess preusmjeravanje na novu domenu preusmjeravanje 301 / http://www.example.com/

Redak koda počinje s preusmjeravanjem 301 HTML i specificira HTTP statusni kod koji će poslati poslužitelj. Slijedi put do sadržaja koji treba preusmjeriti. U tom će slučaju sav sadržaj biti preusmjeren. Konačno, ciljani URL preusmjerava se na URL korisničkog agenta: 'http://www.example.com'.

Ova metoda vam omogućuje preusmjeravanje pojedinačnih datoteka. Sljedeći kod prikazuje preusmjeravanje s jedne stranice na drugu:

.htaccess preusmjerava iz poddirektorija na drugi URL

Evo kako trajno preusmjeravanje izgleda na Apache poslužitelju s aktivnim modulom mod_rewrite:

RewriteEngine On RewriteRule ^directory/example-document.html$ http://www.example.com/example.html

Prvi redak koda aktivira modul mod_rewrite poslužitelja Apache pomoću naredbe 'RewriteEngine On'. Nakon toga se navodi “RewriteRule” sa stazom do datoteke za preusmjeravanje i odredišnom adresom. Simboli ^ i $ označavaju početak i kraj staze, a L označava posljednje pravilo za odgovarajući upit. R=301 prosljeđuje HTTP status 301.

Prilikom postavljanja preusmjeravanja pomoću .htaccess, pogrešni unosi mogu ozbiljno utjecati na rad stranice. S obzirom da ove promjene stupaju na snagu odmah nakon spremanja .htaccess datoteke, morate pažljivo provjeriti odgovarajuće konfiguracije.

Preusmjerava s PHP-om

HTML preusmjeravanje na drugu stranicu također se može izvršiti PHP skriptom (na primjer u index.php). Sljedeći kôd prikazuje trajno preusmjeravanje na ciljni URL "www.example.com":

Kada se prođe kroz PHP skriptu, HTTP statusni kod se utvrđuje pomoću funkcije "zaglavlje" u drugom retku koda. U ovom primjeru trebalo bi izvršiti trajno preusmjeravanje 301. S obzirom da se preusmjeravanja poslužitelja obično izvode na privremenoj osnovi, za trajno preusmjeravanje morate izričito navesti statusni kod 301. Odredišna adresa preusmjeravanja također je navedena u 'zaglavlju'.

U primjeru, preusmjeravanje se događa na "http://www.example.com". Funkcija 'exit' u četvrtom retku koda završava skriptu i sprječava izvođenje sljedećeg retka. Da bi preusmjeravanja radila kroz PHP skriptu, blok koda mora se nalaziti na početku HTML stranice. Ovo sprječava poslužitelja da proslijedi HTML sadržaj stranici za preusmjeravanje.

Preusmjeravanja klijenata

Ako izvođenje preusmjeravanja na strani poslužitelja nije moguće iz tehničkih razloga, tada možete koristiti rješenje na strani klijenta. Da biste to učinili, koristite HTML meta oznaku “refresh” i JavaScript. Nedostatak preusmjeravanja na strani klijenta je taj što poslužitelji ne prosljeđuju HTTP statusne kodove preglednicima ili alatima za indeksiranje koji traže.

Štoviše, preusmjeravanja na strani klijenta ne podržavaju svi korisnički agenti, što znači da postoji rizik da neće svi posjetitelji stranice biti preusmjereni.

Preusmjeravanja HTML indeksa na strani klijenta imaju negativan utjecaj na indeks pretraživanja. Kod preusmjeravanja 301 na strani klijenta ne postoji izričito isključenje iz indeksiranja putem HTTP statusnog koda. To može dovesti do preusmjeravanja domena koje se natječu s ciljnim domenama kada je riječ o upitima za pretraživanje koji se odnose na rangiranje. Za razliku od poslužiteljskih preusmjeravanja, koja ostaju nevidljiva korisnicima, klijentska preusmjeravanja uvijek prate kašnjenja.

Preusmjeravanje s meta oznakom za osvježavanje HTML-a

HTML preusmjeravanja implementirana su putem meta oznaka s atributom 'http-equiv'. Ovo zahtijeva jednostavnu HTML datoteku i odgovarajuću oznaku head za stvaranje preusmjeravanja. Kako bi posjetitelji dobili informaciju o preusmjeravanju, u HTML dokumentu mora biti postavljena odgovarajuća obavijest: “Molimo pričekajte. Bit ćete preusmjereni...'. Jednostavno preusmjeravanje pomoću osvježavanja izgleda ovako.

13.08.16. 4,8 tisuća

U ovom ćemo članku pokazati kako možete preusmjeriti sa stranice pomoću JavaScript lokacije. Neočekivana preusmjeravanja smatraju se vrlo neugodnim s gledišta korisnika jer negativno utječu na cjelokupno iskustvo. Na primjer, ako korisnike preusmjerite na drugu stranicu odmah nakon što odu na vašu. Također, ako usmjerite na stranu stranicu na timeru ili nakon što su izvršili određenu radnju. To će natjerati korisnika da odmah napusti vašu stranicu.

Osim toga, tražilice ne favoriziraju resurse koji koriste preusmjeravanja, osobito ako dovode korisnike u zabludu. Ali postoje slučajevi u kojima preusmjeravanje može biti korisno. Stoga Vama prepuštamo odluku hoćete li koristiti preusmjeravanje ili ne.

JavaScript metode preusmjeravanja

U JavaScriptu, lokacija prozora ili objekt lokacije koristi se za dobivanje informacija o lokaciji trenutne web stranice (dokumenta) i za njezinu promjenu. Dolje je popis metoda koje se mogu koristiti za implementaciju JavaScript preusmjeravanja:

//Postavlja novu lokaciju za trenutni prozor. window.location = "http://www.example.com"; //Postavlja novu hipervezu (URL) za trenutni prozor. window.location.href = "http://www.example.com"; // Dodjeljuje novi URL trenutnom prozoru. window.location.assign("http://www.example.com"); //Zamjenjuje položaj trenutnog prozora novim. window.location.replace("http://www.example.com"); //Postavlja lokaciju samog trenutnog prozora. self.location = "http://www.example.com"; // Postavlja položaj najvišeg prozora u odnosu na trenutni. top.location = "http://www.example.com";

Iako gornji redovi JavaScript koda rade sličan posao, imaju male razlike. Na primjer, ako koristite top.location preusmjeravanje unutar iframe elementa, to će prisiliti preusmjeravanje na glavni prozor. Još jedna stvar koju treba imati na umu: location.replace() zamjenjuje trenutni dokument, uklanja ga iz povijesti i čini ga nedostupnim putem gumba za povratak u pregledniku.

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

Također možete provjeriti ovu stranicu kako biste saznali više o tome kako window.location funkcionira.

JavaScript preusmjeravanje: Preusmjeravanje pri učitavanju

Za preusmjeravanje korisnika na drugo web mjesto odmah nakon otvaranja vašeg web mjesta, možete koristiti sljedeći kod na vrhu svoje stranice, unutar . Ili, ako koristite zasebnu .js datoteku, postavite sljedeći kod u tu datoteku i obavezno ga navedite u zaglavlju svoje stranice:

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

Jednostavno zamijenite primjer URL-a adresom na koju želite preusmjeriti. Treba napomenuti da s ovom vrstom preusmjeravanja posjetitelji uopće neće vidjeti vašu web stranicu i odmah će biti preusmjereni na ciljnu adresu.

JavaScript preusmjeravanje: preusmjeravanje nakon određenog vremenskog razdoblja

Za preusmjeravanje korisnika na drugu stranicu nakon određenog vremena možete koristiti sljedeći kod:

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

Gornja funkcija JavaScript lokacije href preusmjerit će korisnika sa stranice 3 sekunde nakon što se u potpunosti učita. Možete promijeniti vrijednost od 3000 (3 x 1000 u milisekundama) kako bi odgovarala vašim potrebama.

JavaScript preusmjeravanje: preusmjeravanje sa stranice nakon događaja ili radnje korisnika

Ponekad je potrebno poslati korisnika na drugu stranicu nakon određenog događaja ili radnje. U takvim slučajevima možete koristiti testiranje uvjeta ili dodijeliti događaj elementu za izvođenje preusmjeravanja. Razmotrite sljedeća dva primjera:

// Provjerite je li uvjet istinit i zatim preusmjerite. if (...) ( window.location.href = "http://www.example.com"; )

Gornja lokacija dokumenta href JavaScript kod izvršit će preusmjeravanje ako je uvjet istinit.

28.08.16. 8,5 tisuća

U ovom ću članku objasniti kako možete preusmjeriti korisnika s jedne web stranice na drugu pomoću JavaScripta. Također ću dati nekoliko jednostavnih primjera JS preusmjeravanja.

Možete preusmjeriti korisnika s jedne web stranice na bilo koju drugu na nekoliko načina. Uključujući ažuriranje HTML metapodataka, preusmjeravanje na strani poslužitelja. Na primjer, korištenje .htaccess datoteke, PHP-a i korištenje preusmjeravanja na strani klijenta putem JavaScripta.

No imajte na umu da su neočekivana preusmjeravanja koja se dogode usred druge aktivnosti neugodna za posjetitelje. Stoga biste trebali koristiti preusmjeravanje samo ako je stvarno potrebno i ako ima smisla s korisnikove točke gledišta.

Pogledajmo kako se JavaScript može koristiti za preusmjeravanje korisnika na drugu stranicu.

Automatsko JavaScript preusmjeravanje na drugu stranicu

Ako želite automatski preusmjeriti korisnika s jedne stranice (URL1) na drugu stranicu (URL2), možete koristiti sljedeći kod:

window.location.href = "URL2";

Morate zalijepiti gornji kod na prvu stranicu (URL1). Zamijenite URL2 željenom adresom stranice. Bolje je postaviti ovaj kod unutar elementa (umjesto na dno stranice) tako da se stranica preusmjerava prije nego što je preglednik počne prikazivati.

SAVJET: Ako koristite ugrađeni JavaScript (tj. bez vanjske .js datoteke), svakako postavite JavaScript kod u .

Preusmjeri na drugu stranicu nakon X sekundi

U ovom primjeru izvršit ćemo js preusmjeravanje na drugu stranicu neko vrijeme nakon što se stranica učita. Na primjer, ako želite preusmjeriti posjetitelja na početnu stranicu nakon što je stranica dobrodošlice prikazana 5 sekundi:

setTimeout(function())( window.location.href = "url-početne stranice"; ), 5 * 1000);

Morate zalijepiti sljedeći JavaScript kôd na stranicu dobrodošlice. Ne zaboravite zamijeniti početnu stranicu URL-om početne stranice.

Koristili smo metodu setTimeout da kažemo skripti da preusmjeri nakon 5 sekundi (pomnožite 5 s 1000 da pretvorite sekunde u milisekunde).

SAVJET: U JavaScriptu se vremenske vrijednosti uvijek računaju u milisekundama.

Preusmjeravanje na drugu stranicu na temelju stanja

Na primjer, možete preusmjeriti na temelju preglednika posjetitelja (iako se to ne preporučuje), veličine zaslona, ​​doba dana ili drugog uvjeta.

Koristite sljedeći kôd za preusmjeravanje posjetitelja koji ispunjavaju određeni uvjet:

if (CONDITION) ( window.location.href = "redirect-url"; )

Na primjer, ovaj kôd preusmjerava posjetitelje na drugu stranicu ako im je širina zaslona manja od 600 piksela:

ako (zaslon.širina< 600) { window.location.href = "redirect-url"; }

Preusmjeravanje na drugu stranicu na temelju radnji korisnika

Posljednji primjer pokazuje kako ponovno ciljati posjetitelja na temelju njegovih radnji. Možete povezati js preusmjeravanje s bilo kojom vrstom radnje korisnika. U ovom primjeru, radi jednostavnosti, rukovat ćemo klikom na gumb.

Sljedeći kod preusmjerit će posjetitelja na odredišnu stranicu nakon klika na #mybutton:

document.getElementById("mybutton").onclick = function() ( window.location.href = "redirect-url"; );

Možete učiniti isto pomoću sljedećeg koda:

Idite na početnu stranicu

Također možete povezati preusmjeravanje s bilo kojim događajem ili radnjom korisnika. Samo ne zaboravite osigurati da vaša preusmjeravanja neće frustrirati korisnike.

Preusmjeravanje (s engleskog. preusmjeriti– redirect) je preusmjeravanje web stranice na neku drugu stranicu ili drugo mjesto. Preusmjeravanje se može izvesti na različite načine, od kojih će se ovdje raspravljati o glavnim, a to su preusmjeravanje na php, javascript, preusmjeravanje pomoću html-a i korištenje htaccess datoteke.

Među navedenim metodama, najrelevantniji su php redirect i redirect using .htaccess. Činjenica je da vam ove metode omogućuju ne samo preusmjeravanje stranice, već i vraćanje posebne pogreške 301 (301 Permament Redirect). Zašto je ovo potrebno? A ovo je potrebno za tražilice.

Recimo da imamo dobro promoviranu web stranicu s velikim brojem posjetitelja. Stranica je tada premještena na novu domenu. Tražilica to još ne zna. 301 preusmjeravanje vam omogućuje da “zalijepite” stare i nove adrese, a da pritom očuvate sve elemente optimizacije koji su napravljeni za ovu stranicu, a time i promet i publiku same stranice.

Sada pogledajmo sve navedene opcije preusmjeravanja i počnimo s preusmjeravanjem na php.

PHP preusmjeravanje (301)

Preusmjeravanje na PHP, kao iu drugim programskim jezicima, temelji se na specifikaciji HTTP protokola, odnosno slanje potrebnih zaglavlja. Kako ovo radi? Sasvim jednostavno. Svaki put kada pristupimo nekoj stranici na Internetu, od poslužitelja dobivamo HTTP odgovor koji sadrži zaglavlja i tijelo. U tijelu odgovora

HTML preusmjeravanje

HTML označni jezik ima posebnu meta oznaku dizajniranu za preusmjeravanje.

Mijenja se samo polje sadržaja, gdje je naznačen broj sekundi prije preusmjeravanja i stvarna poveznica na koju će se izvršiti preusmjeravanje. Mislim da ne vrijedi govoriti da se oznaka nalazi u html kodu između oznaka glave.

JavaScript preusmjeravanje

Možda najnepouzdanije preusmjeravanje, jer korisnik uvijek može onemogućiti javascript u pregledniku. To se, međutim, čini rijetko, tako da metoda ima pravo postojati.


funkcija reload() (lokacija = "http://site.com"); setTimeout("reload()", 0);

Ovaj kod stvara funkciju koja preusmjerava na željenu stranicu, a zatim je poziva u funkciji setTimeout, koja omogućuje preusmjeravanje nakon potrebnog vremena.

htaccess preusmjeravanje (301)

Datoteka .htaccess je servisna datoteka s raznim dodatnim postavkama za Apache poslužitelj. Postavlja se ručno, u našem slučaju, u korijen stranice. Uz njegovu pomoć možete organizirati 301 preusmjeravanje, ali za to moraju biti omogućeni potrebni moduli u Apacheu.

Korištenje direktiva modula mod_alias

Postoje tri direktive u ovom modulu: Redirect, RedirectPermanent i RedirectMatch. Čini se da su prva dva identična po svojim svojstvima, treći se izdvaja. Za prva dva primjera:

Preusmjeravanje 301 / http://site.com
Trajno preusmjeravanje /index.html http://site.com
RedirectPermanent /index.html http://site.com/default.html

Linije su slične. Ali čini se da postoji jedan nedostatak - da biste preusmjerili sve stranice, morate ih sve označiti na popisu. Kako bismo nekako olakšali zadatak, postoji još jedna direktiva:

RedirectMatch /(.*)\.html$ /$1.php

Možete postaviti regularne izraze za preusmjeravanje sa starog URL-a na novi.

Korištenje direktiva modula mod_rewrite

Kako biste izbjegli dvostruko čitanje istih stranica od strane tražilica, ponekad morate proslijediti sve adrese s domene bez www na domenu s www. Na primjer,

#omogućite modul i potrebnu dodatnu opciju
RewriteEngine uključen
Opcije +FollowSymLinks
#dva retka za preusmjeravanje s "bez BBW" na "s BBW"
RewriteCond %(HTTP_HOST) ^site.com
RewriteRule (.*) http://www.site.com/$1

Umjesto zaključka

Ako vas još uvijek muči pitanje što odabrati (naravno, muče vas škripac i škare - napomena urednika), onda je vrijeme da prestanete patiti (šta govorite! – napomena urednika). Usredotočimo se na PHP preusmjeravanje (ili neki drugi programski jezik o kojem se ovdje nije raspravljalo, na primjer Perl) i preusmjeravanje pomoću datoteke .htaccess, budući da oni omogućuju prijenos stranice bez ikakvih gubitaka za optimizaciju u tražilicama. Ako nije važno, tada će poslužiti bilo koja metoda. I zapravo na ovoj završnoj noti (sol? la? si? – napomena urednika) Završavam ovaj post.