19.03.2021
Pārvirzīšana no vienas lapas uz citu js. Novirzīšana uz citu lapu, izmantojot JavaScript
Četras lietotāju novirzīšanas iespējas, skaidri un ar piemēriem.
1. Novirzīšana, izmantojot Java Script — darbosies tikai tad, ja lietotājam ierīcē ir iespējots JS atbalsts. Neuztraucieties, to lietotāju procentuālais daudzums, kuriem nav JS, ir niecīgs. Ja vēlaties pārbaudīt, cik tas ir neērti, vienkārši uz vienu dienu atspējojiet JS savā pārlūkprogrammā.
Darbojošs novirzīšanas kods:
2. HTML novirzīšana
Šis piemērs novirza lietotāju uz vēlamo adresi ar 1 sekundes aizkavi.
Es atceros, ka IE tas nedarbojās pareizi, vai drīzāk tas nedarbojās vispār. Ja jūs to izmantojat, pārbaudiet to katram gadījumam.
3. Novirzīt uz php
Vienkāršs un gaumīgs fails ar paplašinājumu .php ar šādu saturu:
4. Novirzīt, izmantojot .htaccess
Novirzīt / http://url4trafic.ru
Pārvirzot trafiku no sociālajiem tīkliem, vispārīgos gadījumos visatbilstošākā iespēja ir no piemēra Nr.1, ar nelielu papildinājumu - proti, izmantojot ogp marķējumu. Lai padarītu to nedaudz skaidrāku, Open Graph iezīmēšana ir protokols lapas satura atzīmēšanai, lai tā saturu nosūtītu sociālajiem tīkliem. Publicējot saiti uz sociālais tīkls varat “manuāli” norādīt, kurš sīktēla attēls un apraksts jāparāda.
Darba piemērs (var būt neprecizitātes un nepilnības, bet tas joprojām darbojas :)
Lapas nosaukums
Kā tas izskatās, kad tas tiek publicēts vietnē Konakte:
Īss punktu kopsavilkums:
- norāda, ka tiks izmantots Open Graph marķējums
- - aizpildiet kārdinošu aprakstu - augstāk esošajā piemērā tas ir “Džons Cena paziņoja par atgriešanās datumu”
- Lapas nosaukums — intriģējošs nosaukums — augstāk esošajā piemērā tas ir "Džons Cena atgriežas uzstāties - WWE Wrestling News"
- - šis ir ceļš uz attēlu, kas tiks ielādēts - iepriekš minētajā piemērā tas ir tas pats puisis zilā T-kreklā.
Lai saite būtu skaista un liela, attēlam sākotnēji jābūt pietiekama izmēra. Piemēram, VKontakte tas ir vairāk nekā 537x240 pikseļi. Labāk - vairāk.
Atrašanās vieta = "http://url4trafic.ru" - tas ir, jūs uzminējāt, URL, uz kuru mēs nosūtīsim lietotāju.
Kas ir novirzīšana vienkāršos vārdosNovirzīšana ir automātiska lietotāju novirzīšana no vienas vietnes lapas uz citu lapu (gan vienā vietnē, gan uz ārējām vietnēm). Meklētājprogrammām lapu adrešu sapludināšanai tiek izmantota novirzīšana.
Katrai novirzīšanai ir savs numurs, kas ir atbildīgs par tā funkciju. Ir šādi novirzīšanas veidi:
- 300 novirzīšana — vairākas izvēles iespējas;
- - pārcēlās uz visiem laikiem;
- 302 novirzīt - dokuments atrasts;
- 303 novirzīt — skatīt citu;
- 304 novirzīt - dokuments nav mainījies;
- 305 novirzīt — izmantojiet starpniekserveri;
- 306 novirzīt - netiek izmantots;
- 307 redirect - pagaidu novirzīšana;
Šo novirzīšanas gadījumu līderis ir . To izmanto, ja vietnes lapas adrese ir neatgriezeniski mainījusies. Kā liecina prakse, šī ir visizplatītākā situācija. Visos tālāk norādītajos piemēros tas būs tieši tas.
Ir vairāki veidi, kā veikt novirzīšanu. Katram savi plusi un mīnusi. Tālāk mēs aplūkosim katru no tiem atsevišķi ar piemēriem.
1. Novirzīt, izmantojot JavaScriptJavaScript ir plašs funkciju klāsts novirzīšanas veikšanai. Tālāk esošajā piemērā ir parādītas dažādas novirzīšanas, kas veiktas, izmantojot dažādas JavaScript funkcijas.
document.location ="http://ya.ru/"; //pirmā opcija window.location.replace ("http://ya.ru/"); //otrā opcija window.location.reload ("http://ya.ru/"); //trešā opcija document.location.replace ("http://ya.ru/ ");//ceturtā opcija atrašanās vieta ="http://ya.ru/ ";//piektā opcija setTimeout ("location ="http ://ya.ru/ ";", 10000 );//sestā opcija //ar intervāla iestatīšanu (1=1ms)Jebkurā no iepriekš minētajām opcijām tiks veikta automātiska pāreja uz vietni http://ya.ru/
JavaScript trūkums ir tāds, ka ir jābūt vietnes lapai, no kuras tiek veikta novirzīšana. Un, otrkārt, šis dizains nav ļoti ātrs, jo vispirms tiek ielādēta lapa, no kuras tiks ielādēta novirzīšana - un tas ir nevajadzīgs dārgā laika zaudējums.
2. Novirzīt, izmantojot .htaccessAtgādināšu, ka .htaccess ir īpašs fails, kas atrodas jūsu vietnes saknes mapē. Tajā ir visas nepieciešamās novirzīšanas. Tādējādi jau tīmekļa servera līmenī notiek pāreja uz vēlamo lapu, neielādējot starpposma lapas.
IN vispārējs skats novirzīšana caur .htaccess failu izskatās šādi:
Novirzīt [REDIRECT_CODE] /ADDRESS_FROM ADDRESS_WHERE- REDIRECT_CODE - šeit ir norādīts novirzīšanas numurs (tas nav jānorāda, noklusējuma vērtība ir 301);
- /ADDRESS_FROM — lapa, no kuras tiks veikta pāreja. Jāsākas ar slīpsvītru "/";
- ADDRESS_WHERE - norādiet pilnu adresi (URL), kur tiks veikta novirzīšana;
301 novirzīšana no vietnes bez www uz vietnes lapu ar www.
RewriteEngine On RewriteCond %(HTTP_HOST) ^site.ru RewriteRule (.*) http://www.site.ru/$1Šajā gadījumā tiks veikta automātiska pāreja no jebkuras vietnes site.ru lapas uz www.site.ru. Piemēram
site.ru/razdel/123.html -> www.site.ru/razdel/123.html site.ru/razdel -> www.site.ru/razdelLai veiktu apgrieztu novirzīšanu no www uz bez www (www.site.ru -> site.ru), jums jāievada šāds kods:
RewriteEngine On RewriteCond %(HTTP_HOST) ^www.site.ru RewriteRule (.*) http://site.ru/$1 2) Lietotāja novirzīšana uz citu domēnu Redirect Permanent / http://site.ruVisi lietotāji tiks automātiski novirzīti uz domēnu http://site.ru/
3) Lietotāja novirzīšana no lapas uz citu adresi Redirect 301 /start.html http://site.ru/hi.htmlNo lapas /start.html tiks veikta automātiska pāreja uz http://site.ru/hi.html
4) Novirzīt, mainot vietnes domēnu (URL)Dažreiz jums ir jāveic pilnīga novirzīšana no vienas vietnes uz citu (piemēram, vietnes domēns ir mainījies). Šajā gadījumā jums ir jāraksta šādas četras rindiņas:
RewriteCond %(HTTP_HOST) ^olddomen\.ru RewriteRule ^(.*)$ http://newdomen.ru/$1 RewriteCond %(HTTP_HOST) ^www\.olddomen\.ru RewriteRule ^(.*)$ http:// newdomen.ru/$1 5) Novirzīt no http://site/yyyy/mm/dd/post/ uz http://site/post/Šī novirzīšana būs noderīga WordPress emuāru īpašniekiem. Ziņas publicēšanas gada, mēneša un datuma norādīšana nemaz nav nepieciešama un rada nevajadzīgu hierarhiju, kas traucē bloga popularizēšanai. Tāpēc jums ir jāizmanto šāds kods:
RewriteEngine On RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RedirectMatch 301 /(4)/(2)/(2)/(.+)/$ /$1/Piemēram, no adreses http://site/2014/11/24/primerposta/ tiks veikta 301 novirzīšana uz http://site/primerposta/.
3. Novirziet html, izmantojot metataguHtml novirzīšana tiek veikta, izmantojot metatagu, izmantojot atsvaidzināšanas atribūtu:
...Šajā gadījumā 1 sekundes laikā tiks veikta novirzīšana (automātiska pāreja) uz http://site.ru/. Saturā pirmais parametrs ir sekundes, bet otrais ir URL. Ja sekundes nav norādītas, tas nozīmē 0 (momentāna pāreja).
4. PHP novirzīšanaPHP ir īpaša funkcijas galvene, kas ir atbildīga par dažādas iespējas novirza.
Piemēri
header("Atrašanās vieta: http://site.ru/", true, 301);// redirection //izmantojot 301 novirzīšanu uz vietni.ru; header("Atrašanās vieta: http://site2.ru/");// novirzīšana, izmantojot 301 //novirzīt uz site2.ru; header("Atsvaidzināt: 5; url=http://site.ru/");// novirzīt ar // 5 sekunžu aizkaviKuru novirzīšanas metodi man izvēlēties?
Manuprāt, vislabāk ir, jo viss ir aprakstīts vienā failā un vairs nenotiek tīmekļa servera apstrādes līmenī, tas ir, nav nepieciešama lapas ielāde. Tas savukārt var ievērojami paātrināt ielādes procesu. Visos citos gadījumos ir papildu lapa un neliela laika aizkave, jo lapa ir jāielādē vismaz daļēji.
Izmantojot pakalpojumu, varat pārbaudīt, vai novirzīšana ir pareizi konfigurēta
Vai vēlaties novirzīt URL no vienas atrašanās vietas uz citu? Šajā vienkāršajā apmācībā mēs parādīsim, kā to izdarīt, izmantojot Apache/.htaccess, PHP, JavaScript, HTML utt. Mēs īsi izskaidrosim katru HTML novirzīšanas metodi un parādīsim lietošanai gatavus piemērus.
URL novirzīšana, izmantojot PHPPāradresācija ar PHP tiek veikta, izmantojot header() funkciju, piemēram:
Šī funkcija ir jāizsauc tīmekļa lapas sākumā, pirms tiek izvadīts HTML kods. Lai uzzinātu vairāk par šīs metodes iestatīšanu, skatiet PHP dokumentāciju.
Lai pēc noteikta laika veiktu novirzīšanu, izmantojot PHP:
Novirzīšana uz example.com tiek pabeigta 5 sekundēs. Varat mainīt šo vērtību uz visu, kas jums nepieciešams.
URL novirzīšana, izmantojot JavaScriptŠis ir vienkāršākais veids, kā novirzīt indeksa html, izmantojot JavaScript:
document.location.href = "http://example.com/";
Novirzīt URL, izmantojot HTMLIr iespējams novirzīt lietotāju uz jaunu URL, izmantojot veco labo HTML. Šeit ir piemērs:
To sauc par meta-atsvaidzināšanas novirzīšanu. Varat iestatīt laiku (sekundēs), mainot 10 uz vēlamo skaitli. Lūdzu, ņemiet vērā, ka šo novirzīšanas metodi bieži ļaunprātīgi izmanto surogātpasta izplatītāji. Tāpēc esiet piesardzīgs, ja to ieviešat publiskā vietnē.
URL novirzīšana, izmantojot PerlŠeit ir divi veidi, kā novirzīt URL, izmantojot Perl:
#!/usr/bin/perl drukāt "Atrašanās vieta: http://example.comnn"; Izeja;
URL novirzīšana, izmantojot ASP (VB skriptu)Lai novirzītu URL, izmantojot ASP, pievienojiet šādu kodu:
URL novirzīšana ar mod_alias Apache
Vienkāršākais veids, kā novirzīt uz Apache serveriem, ir:
Novirzīt 301 /old-location.html http://example.com/new-location/
Pirms HTML novirzīšanas veikšanas šis kods ir jāpievieno .htaccess failam vai Apache servera konfigurācijas failam. Šeit ir šīs metodes sintakse:
[Direktīva] [Statusa kods] [Vecais URL] [Jaunais URL]
Ja nepieciešams, varat mainīt jebkuru no šiem iestatījumiem. Piemēram, ja vēlaties dinamiski aizstāt veco URL, lai novirzītu visus tālāk norādītos URL:
http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03. html. . .
Redirect vietā varat izmantot RedirectMatch:
RedirectMatch 301 /vecais-direktorijs/fails-(.*).html http://example.com/new-directory/file-$1.html
Varat arī mainīt statusa kodu no 301 (pastāvīga novirzīšana) uz 302 (pagaidu novirzīšana). Vai jebkurš cits derīgs statusa kods. Tālāk ir sniegts norādījums par regulārajām izteiksmēm, kas tiek izmantotas RedirectMatch metodē:
- vai simbola neesamība);
- $1 — atgriež modeli, kas atbilst pirmais (.*) .
Funkcionālāks veids, kā novirzīt ar Apache, ir izmantot tā mod_rewrite pārrakstīšanas moduli. Šeit ir daži piemēri, ko var pievienot .htaccess vai Apache konfigurācijas failam.
1. piemērs: novirzīt no www uz bez wwwŠis HTML novirzīšanas kods novirza visas vietrāžu URL www versijas uz tām līdzvērtīgām versijām bez www.
RewriteCond %(HTTP_HOST) ^www.example.com$ RewriteRule (.*) http://example.com/$1
To sauc par kanonizāciju. Šeit ir dažas piezīmes par šajā piemērā izmantoto regulāro izteiksmi:
- . - burtiski atbilst punktam;
- $ - apzīmē pieprasītā URI beigas;
- (.*) - atbilst jebkurai rakstzīmei (vai bez rakstzīmēm);
Lai novirzītu HTML no pašreizējā domēna uz jaunu:
RewriteRule ^/(.*) https://new-domain.tld/$1
Līdzīgi varat novirzīt pieprasījumus no pašreizējās vietnes apakšdomēna uz jaunās vietnes apakšdomēnu.
RewriteCond %(HTTP_HOST) (.*).old-domain.tld RewriteRule ^/(.*) https://%1.new-domain.tld/$1
Šeit ir dažas piezīmes par šajā piemērā izmantoto regulāro izteiksmi:
- ^ - apzīmē pieprasītā URI sākumu;
- (.*) - atbilst jebkurai rakstzīmei (vai bez rakstzīmēm);
- $1 — atbilst iekavu (.*) modelim RewriteRule ;
- %1 — atbilst pirmajai iekavu shēmai (.*) programmā RewriteCond
- - Nosūta 301 statusa kodu un uzdod Apache pārtraukt kārtulu kopas apstrādi.
Lūdzu, ņemiet vērā: lai kāda no šīm metodēm darbotos pareizi, abiem domēniem ir jābūt vienādai failu struktūrai. Pašreizējā domēna mapēm un resursiem ir jābūt arī jaunajā domēnā. Pretējā gadījumā jaunajā domēnā tiks parādīta virkne kļūdu 404.
3. piemērs: visu HTML un PHP failu novirzīšanaŠeit ir vēl viens, sarežģītāks HTML novirzīšanas skripta mod_rewrite piemērs:
RewriteCond %(REQUEST_URI) ^/vecais-direktorijs/(.*).(html|php)$ RewriteRule (.*) http://example.com/new-directory/%1.%2
Mēs novirzām visus pieprasījumus uz jebkuriem HTML vai PHP failiem, kas atrodas mapē /old-directory/. Visi atbilstošie pieprasījumi tiek novirzīti uz to pašu failu, kas atrodas mapē /new-directory/ . Šeit ir dažas piezīmes par šajā piemērā izmantoto regulāro izteiksmi:
- ^ - apzīmē pieprasītā URI sākumu;
- (.*) - atbilst jebkurai rakstzīmei (vai bez rakstzīmēm);
- . - burtiski atbilst punktam;
- (html php) - atbilst vai nu html, vai php;
- — padara raksta reģistru nejutīgu;
- %1 — atbilst pirmajai iekavas shēmai (.*) programmā RewriteCond;
- %2 - atbilst otro iekava modeli (html|php ) programmā RewriteCond ;
- - Nosūta 301 statusa kodu un uzdod Apache pārtraukt kārtulu kopas apstrādi.
Šeit ir ērts html kods, lai novirzītu visas 404 kļūdas “Nav atrasts” uz noteiktu URL.
Novirzīšanas veidi
Ir vairāki novirzīšanas veidi. Īsi apsveriet katru no tiem, lai noteiktu, kurš no tiem ir vislabākais.
Pāradresācija, izmantojot htaccess, ir vispopulārākā un diezgan vienkāršākā metode. Lai to izdarītu, vietnes mapē būs jāizveido fails ar nosaukumu .htaccess (ņemiet vērā, ka faila nosaukums sākas ar punktu, tā nav drukas kļūda). Ja izmantojat CMS WordPress vai Joomla, visticamāk, jums jau ir šis fails, un tādā gadījumā jums tas būs vienkārši jārediģē.
Lasiet tālāk, lai uzzinātu, kādi norādījumi tajā jāiekļauj, lai izveidotu novirzīšanu.
Pāradresācija, izmantojot PHP, ir piemērota, ja saprotat PHP un zināt savas vietnes struktūru. Šī opcija ir piemērota jums, ja jūsu vietne nav rakstīta SPS. Pretējā gadījumā labāk ir izmantot novirzīšanu, izmantojot htaccess.
HTML novirzīšana — ja jums ir vienkārša HTML vietne un ir jāveic novirzīšana vienai lapai, šī ir vienkāršākā iespēja. Visas vietnes novirzīšana, izmantojot šo metodi, būs darbietilpīga, it īpaši, ja jūsu vietnē ir vairāk nekā 10 lapas.
Novirzīt, izmantojot JavaScript — šī metode ir piemērota arī tad, ja jums ir vienkārša vietne vai ja jums ir jāveic novirzīšana vienai vai divām lapām vai visai vietnei kopumā.
Novirzīt, izmantojot .htaccess failu
Tālāk redzamās instrukcijas ir jāieraksta .htaccess failā pašā sākumā.
Novirzīt / http://new-site.ru/
Šajā piemērā novirzīšana notiks uz vietni new-site.ru
Novirzīt /lapa-1.html /lapa-2.html
Šajā piemērā novirzīšana notiks no lapas-1.html uz lapu-2.html. Abām lapām jāatrodas vienā domēnā.
Šī opcija ir piemērota veco vietņu lapu aizstāšanai ar jaunām.
RewriteEngine ieslēgts
RewriteCond %(HTTP_HOST) ^www.example\.ru
RewriteRule ^(.*)$ http://example.ru/$1
Šajā piemērā apmeklētāji tiks novirzīti no http://www.example.ru uz http://example.ru.
Novirzīt 301 /blog/page-1.html http://example.com/page-2.htm
Šajā piemērā apmeklētāji tiks novirzīti prom no lapas emuārs/lapa-1.html ieslēgts example.com/page-2.htm.
ErrorDocument 404 /index.html
Ierakstiet šo rindiņu .htaccess failā, un pēc tam visi apmeklētāji, kuri saskaras ar kļūdu 404, tiks novirzīti uz index.html.
RewriteEngine ieslēgts
RewriteCond %(HTTPS) izslēgts
RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI)
Ierakstiet šo rindiņu .htaccess failā, un pēc tam visi apmeklētāji, kas ieiet vietnē, izmantojot HTTP, tiks novirzīti uz drošu HTTPS protokolu.
Ja reģistrējat WordPress novirzīšanu, pievērsiet uzmanību tam, ka failā jau ir rindiņa RewriteEngine On. Tāpēc tūlīt zem tā jāpievieno šādas rindas
RewriteCond %(SERVER_PORT) 80
RewriteRule ^(.*)$ https://www.domain.com/$1
PHP novirzīšana
PHP programmā novirzīšana tiek veikta šādi: serveris nosūta galvenes apmeklētāja pārlūkprogrammai, un tas automātiski tiek nosūtīts uz vēlamo adresi.
Ir vērts atzīmēt svarīgu punktu: galvenes var nosūtīt tikai pirms citas informācijas parādīšanas. Tas ir, tie ir jānosūta, pirms tiek izvadīta cita informācija, izmantojot atbalss un pirms sīkfailu nosūtīšanas.
Šajā piemērā novirzīšana notiks uz vietni http://example.com
Šeit novirzīšana notiks uz http://example.com/page.html
Šeit, ja vietnes apmeklētājs dodas uz lapu blog/post-1.html, viņš tiks novirzīts uz http://example.com/page.html.
HTML novirzīšana
Lai veiktu pāradresāciju, izmantojot HTML, katrai lapai, kurā tas ir plānots, jāpievieno īpašs metatags. Metatags ir ierakstīts taga iekšpusē
.
Lielās vietnēs šī metode nav ērta, un ir ieteicams izmantot novirzīšanu, izmantojot .
Šajā piemērā novirzīšana notiks uz vietni https://site ar 5 sekunžu aizkavi. Ja aizkaves vērtību iestatāt uz 0, nevis uz 5, apmeklētājs tiks nekavējoties novirzīts uz citu vietni.
Var būt dažādu iemeslu dēļ kāpēc jūs vēlaties novirzīt lietotāju prom no sākotnējās lapas. Tālāk mēs uzskaitām vairākus iemeslus:
- Jums nepatīk jūsu domēna vārds, un jūs pārejat uz jaunu. Šajā gadījumā jūs varat novirzīt visus savus apmeklētājus uz jauno vietni. Šeit jūs varat saglabāt savu veco domēnu, bet ievietot vienu lapu ar lapas novirzīšanu, lai visi jūsu vecā domēna apmeklētāji varētu pāriet uz jauno domēnu.
- Jūsu lapas tiek veidotas atšķirīgi atkarībā no pārlūkprogrammas versijām vai pārlūkprogrammu nosaukumiem, vai tās var būt norādītas dažādām valstīm. Tā vietā, lai izmantotu servera puses novirzīšanas lapu, varat izmantot klienta puses novirzīšanas lapu, lai novirzītu lietotājus uz atbilstošo lapu.
- Meklētājprogrammas, iespējams, jau ir indeksējušas lapas. Taču, pārejot uz citu domēnu, jūs nevēlaties zaudēt apmeklētājus, kas nāk, izmantojot meklētājprogrammas. Tātad jūs varat izmantot klienta puses novirzīšanas lapu. Taču paturiet prātā, ka to nevajadzētu darīt, lai maldinātu meklētājprogrammu, jo tādējādi jūsu vietne var tikt aizliegta.
Lapas novirzīšanas īstenošanas piemērs ir šāds:
1. piemērsIr diezgan vienkārši veikt lapas novirzīšanu, izmantojot klienta puses JavaScript. Lai novirzītu vietnes apmeklētājus uz jaunu lapu, jums vienkārši jāpievieno šāda rindiņa galvas sadaļā.
Noklikšķiniet uz šīs pogas, jūs tiksit novirzīts uz mājas lapa.
2. piemērsVarat rādīt atbilstošu ziņojumu savas vietnes apmeklētājiem un pēc tam novirzīt viņus uz jaunu lapu. Tas prasīs laika aizkavi, lai ielādētu jauno lapu. Nākamajā piemērā parādīts, kā to pašu īstenot. Šeit SetTimeout () ir iebūvēta JavaScript funkcija, ko var izmantot, lai izpildītu citu funkciju pēc noteiktā laika intervāla.
Secinājums Pēc 10 sekundēm tiksiet novirzīts uz galveno lapu! 3. piemērs
Šajā piemērā ir parādīts, kā novirzīt vietnes apmeklētājus uz citu lapu atkarībā no viņu pārlūkprogrammas.