Javascript გადამისამართება დაგვიანებით. გადამისამართების ოთხი ვარიანტი: Java Script, html, php და htaccess. რატომ არ იტვირთება სურათები "Show HTML"-ის გამოყენებისას?

აქ შეგიძლიათ ჩამოტვირთოთ უფასო სკრიპტი ნაყარი ბმულების გადამისამართების მართვისთვის. სკრიპტის შევსებით მიიღებთ დეტალურ ინსტრუქციას რუსულ ენაზე.

რატომ გჭირდებათ ბმულის შემოკლებისა და გადამისამართების სკრიპტი?

მოდით გავარკვიოთ, რატომ გჭირდებათ თქვენი საკუთარი სკრიპტი ბმულის გადამისამართების შესამცირებლად და სამართავად.

პირველ რიგში, თქვენ აკლებთ შვილობილი ბმულის სიგრძეს - როგორც წესი, შვილობილი ბმულები გრძელია.

მეორეც, თქვენ მალავთ რეფერალის წყაროს - შემოკლების შემდეგ ბმული იქნება თქვენი დომენის სახელით.

და რაც მთავარია, შენ იცავ შენს საქმეს!

როგორ იცავს ბმულის გადამისამართების სკრიპტი თქვენს მუშაობას?
  • პროდუქტი ამოღებულია გაყიდვიდან;
  • იცვლება ბმულის გარეგნობა;
  • შვილობილი პროგრამა დახურულია.

ყველა ამ შემთხვევაში თქვენი ნამუშევარი ქრება - ბმულები წყვეტს მუშაობას.

და ბმულის გადამისამართების სკრიპტის გამოყენებით, შეგიძლიათ გადამისამართოთ ტრაფიკი ნებისმიერ საიტზე მხოლოდ ერთ წუთში. თქვენ ცვლით ბმულის წყაროს სკრიპტში (რაც მოითხოვს თქვენი დროის 1 წუთზე ნაკლებს) და ადრე გამოქვეყნებულ მასალებში ყველა ბმული უკვე მიდის თქვენთვის საჭირო ადგილამდე.

შეგიძლიათ თქვათ - რაც შეეხება ბმულების შემცირების სერვისებს??

სერვისს ასევე აქვს უზარმაზარი ნაკლი, როგორც ქვემოთ ვკითხულობთ.

ბმულების შემცირების სერვისები

ამჟამად, არსებობს მრავალი სერვისი ბმულების შესამცირებლად. მაგრამ ონლაინ სერვისებს დიდი ნაკლი აქვს. როდესაც ამოკლებთ ბმულს ონლაინ სერვისების გამოყენებით, თქვენ გახდებით დამოკიდებული მათ შესრულებაზე. თუ სერვისი წყვეტს მუშაობას, ეს ნიშნავს, რომ თქვენი ყველა ბმული წყვეტს მუშაობას.

დასკვნა: ასეთი სერვისების გამოყენება შესაძლებელია მხოლოდ მოკლევადიანი აქციებისთვის (ბიულეტენი, სარეკლამო გზავნილები და ა.შ.).

და თქვენი სამუშაოს დასაცავად, თქვენ უნდა გამოიყენოთ საკუთარი სისტემა ბმულების შემოკლებისა და გადამისამართებისთვის.

ჩამოტვირთეთ გადამისამართების სკრიპტი უფასოდ

ზემოაღნიშნულიდან გამომდინარე, შვილობილი პროგრამების ყველა მონაწილეს სჭირდება საკუთარი გადამისამართების სკრიპტი. ჩვენგან შეგიძლიათ ჩამოტვირთოთ PHP სკრიპტი ბმულის გადამისამართებისთვის სრულიად უფასოდ - უბრალოდ გააკეთეთ მარტივი რეკომენდაცია. თქვენი ბმულების მონაცემთა ბაზა ინახება ტექსტურ ფაილში და არ საჭიროებს MySQL-ს.

ყურადღება: თქვენს ჰოსტინგს უნდა ჰქონდეს PHP და .HTACCESS მხარდაჭერა

სხვა სკრიპტები ბმულების გადამისამართებისთვის

თუ თქვენი ბმულის მუშაობის სტატისტიკა, რომელიც მოწოდებულია შვილობილი პროგრამების მფლობელების მიერ, არ არის საკმარისი თქვენთვის, მაშინ შეგიძლიათ დააინსტალიროთ თქვენი ბმულის შემოკლების სერვისი (საჭიროა PHP და MySQL მხარდაჭერა). ვიდეო ინსტრუქციები, თუ როგორ შექმნათ თქვენი საკუთარი სერვისი, ხელმისაწვდომია ჩვენი კლუბის წევრებისთვის უფასოდ: .

დამატებითი ინფორმაცია

წყარო:.
ჯონ დო.
ფორმატი: PHP.
დამატებით: უფასო.
ზომა: 1.01 MB.

ამ სტატიაში ჩვენ გაჩვენებთ, თუ როგორ შეგიძლიათ გადამისამართება გვერდიდან JavaScript მდებარეობის გამოყენებით. მომხმარებლების თვალსაზრისით, მოულოდნელი გადამისამართებები ძალიან შემაშფოთებლად ითვლება, რადგან ისინი უარყოფითად აისახება საერთო გამოცდილებაზე. მაგალითად, თუ თქვენ გადამისამართებთ მომხმარებლებს სხვა საიტზე მაშინვე, როცა ისინი თქვენს საიტზე გადადიან. ასევე, თუ თქვენ მიმართავთ უცხოურ გვერდზე ტაიმერზე ან მას შემდეგ, რაც მათ შეასრულეს გარკვეული მოქმედება. ეს მომხმარებელს გაუჩენს სურვილის დაუყოვნებლივ დატოვებას თქვენი საიტიდან.

გარდა ამისა, საძიებო სისტემები არ ემხრობა რესურსებს, რომლებიც იყენებენ გადამისამართებებს, განსაკუთრებით თუ ისინი შეცდომაში შეჰყავთ მომხმარებლებს. მაგრამ არის შემთხვევები, როდესაც გადამისამართება შეიძლება სასარგებლო იყოს. ამიტომ, თქვენ გადაწყვიტეთ, გამოიყენოთ თუ არა გადამისამართება.

JavaScript გადამისამართების მეთოდები

JavaScript-ში ფანჯრის მდებარეობა ან მდებარეობის ობიექტი გამოიყენება მიმდინარე ვებგვერდის (დოკუმენტის) მდებარეობის შესახებ ინფორმაციის მისაღებად და ასევე მის შესაცვლელად. ქვემოთ მოცემულია მეთოდების სია, რომლებიც შეიძლება გამოყენებულ იქნას JavaScript გადამისამართებების განსახორციელებლად:

//აყენებს ახალ მდებარეობას მიმდინარე ფანჯრისთვის. window.location = "http://www.example.com"; //აყენებს ახალ ჰიპერბმულს (URL) მიმდინარე ფანჯრისთვის. window.location.href = "http://www.example.com"; // ანიჭებს ახალ URL-ს მიმდინარე ფანჯარას. window.location.assign ("http://www.example.com"); //ანაცვლებს მიმდინარე ფანჯრის პოზიციას ახლით. window.location.replace("http://www.example.com"); //ადგენს თავად მიმდინარე ფანჯრის მდებარეობას. self.location = "http://www.example.com"; // ადგენს ყველაზე ზედა ფანჯრის პოზიციას მიმდინარე ფანჯრის მიმართ. top.location = "http://www.example.com";

მიუხედავად იმისა, რომ JavaScript კოდის ზემოთ მოყვანილი სტრიქონები მსგავს საქმეს აკეთებენ, მათ აქვთ მცირე განსხვავებები. მაგალითად, თუ იყენებთ top.location გადამისამართებას iframe ელემენტის შიგნით, ეს გამოიწვევს მთავარ ფანჯარაში გადამისამართებას. კიდევ ერთი რამ, რაც უნდა გვახსოვდეს: location.replace() ცვლის მიმდინარე დოკუმენტს, აშორებს მას ისტორიიდან და მიუწვდომელს ხდის ბრაუზერის უკანა ღილაკის მეშვეობით.

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

თქვენ ასევე შეგიძლიათ შეამოწმოთ ეს გვერდი, რომ გაიგოთ მეტი, თუ როგორ მუშაობს window.location.

JavaScript გადამისამართება: გადამისამართება ჩატვირთვაზე

თქვენი საიტის გახსნისთანავე მომხმარებლის სხვა ვებსაიტზე გადამისამართებისთვის, შეგიძლიათ გამოიყენოთ შემდეგი კოდი თქვენი გვერდის ზედა ნაწილში, შიგნით. ან, თუ იყენებთ ცალკე .js ფაილს, განათავსეთ შემდეგი კოდი ამ ფაილში და აუცილებლად მიუთითეთ იგი თქვენი გვერდის თავში:

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

უბრალოდ შეცვალეთ მაგალითი URL მისამართით, რომელზეც გსურთ გადამისამართება. უნდა აღინიშნოს, რომ ამ ტიპის გადამისამართებით, ვიზიტორები საერთოდ ვერ ნახავენ თქვენს ვებ გვერდს და მყისიერად გადამისამართდებიან სამიზნე მისამართზე.

JavaScript გადამისამართება: გადამისამართება გარკვეული პერიოდის შემდეგ

მომხმარებლის სხვა საიტზე გადამისამართებისთვის გარკვეული პერიოდის შემდეგ შეგიძლიათ გამოიყენოთ შემდეგი კოდი:

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

ზემოთ მოცემული JavaScript მდებარეობის href ფუნქცია გადამისამართებს მომხმარებელს გვერდიდან 3 წამის შემდეგ მისი სრულად ჩატვირთვიდან. თქვენ შეგიძლიათ შეცვალოთ მნიშვნელობა 3000 (3 x 1000 მილიწამებში) თქვენი საჭიროებების შესაბამისად.

JavaScript გადამისამართება: გვერდიდან გადამისამართება მოვლენის ან მომხმარებლის მოქმედების შემდეგ

ზოგჯერ საჭიროა მომხმარებლის სხვა გვერდზე გაგზავნა გარკვეული მოვლენის ან მოქმედების შემდეგ. ასეთ შემთხვევებში, შეგიძლიათ გამოიყენოთ მდგომარეობის ტესტირება ან მივანიჭოთ მოვლენა ელემენტს გადამისამართების შესასრულებლად. განვიხილოთ შემდეგი ორი მაგალითი:

// შეამოწმეთ არის თუ არა პირობა true და შემდეგ გადამისამართება. თუ (...) ( window.location.href = "http://www.example.com"; )

ზემოთ მოცემული დოკუმენტის მდებარეობის href JavaScript კოდი შეასრულებს გადამისამართებას, თუ პირობა მართალია:

// onclick მოვლენა ენიჭება #button ელემენტს. document.getElementById("ღილაკი").onclick = ფუნქცია() ( window.location.href = "http://www.example.com"; );

ზემოთ მოყვანილი კოდი შეასრულებს გადამისამართებას, როდესაც მომხმარებელი დააჭერს # ღილაკს ელემენტს.

ასე მუშაობს გადამისამართებები JavaScript-ში. ვიმედოვნებთ, რომ ეს მაგალითები დაგეხმარებათ ვებ გვერდის გადამისამართების ორგანიზებაში.

გსურთ URL-ის გადამისამართება ერთი ადგილიდან მეორეზე? ამ მარტივ სახელმძღვანელოში ჩვენ გაჩვენებთ, თუ როგორ შეგიძლიათ ამის გაკეთება Apache/.htaccess, PHP, JavaScript, HTML და ა.შ. გამოყენებით. ჩვენ მოკლედ ავხსნით HTML გადამისამართების თითოეულ მეთოდს და ვაჩვენებთ მზა მაგალითებს.

URL-ების გადამისამართება PHP-ით

PHP-ით გადამისამართება ხდება header() ფუნქციის გამოყენებით, მაგალითად:

ეს ფუნქცია უნდა გამოიძახოთ ვებ გვერდის დასაწყისში, სანამ HTML კოდი გამოვა. ამ მეთოდის დაყენების შესახებ მეტის გასაგებად, იხილეთ PHP დოკუმენტაცია.

გადამისამართების შესასრულებლად PHP-ის გამოყენებით გარკვეული დროის შემდეგ:

გადამისამართება example.com-ზე სრულდება 5 წამში. თქვენ შეგიძლიათ შეცვალოთ ეს მნიშვნელობა რაც გჭირდებათ.

URL-ების გადამისამართება JavaScript-ით

აქ არის უმარტივესი გზა ინდექსის html გადამისამართებისთვის JavaScript-ის გამოყენებით:

document.location.href = "http://example.com/";

URL-ების გადამისამართება HTML-ის გამოყენებით

შესაძლებელია მომხმარებლის გადამისამართება ახალ URL-ზე ძველი კარგი HTML-ის გამოყენებით. აი მაგალითი:

ამას ეწოდება მეტა-განახლების გადამისამართება. შეგიძლიათ დააყენოთ დრო (წამებში) 10-ის სასურველ რიცხვზე შეცვლით. გთხოვთ გაითვალისწინოთ, რომ გადამისამართების ეს მეთოდი ხშირად ბოროტად გამოიყენება სპამერების მიერ. ასე რომ, ფრთხილად იყავით, თუ მას ახორციელებთ საჯარო საიტზე.

URL-ების გადამისამართება Perl-ით

აქ მოცემულია URL-ების გადამისამართების ორი გზა Perl-ის გამოყენებით:

#!/usr/bin/perl ბეჭდვა "ადგილმდებარეობა: http://example.comnn"; გასასვლელი;

URL-ების გადამისამართება ASP (VB Script) გამოყენებით

URL-ის ASP-ის გამოყენებით გადამისამართებისთვის, დაამატეთ შემდეგი კოდი:

URL-ების გადამისამართება mod_alias Apache-ით

Apache სერვერებზე გადამისამართების უმარტივესი გზაა:

გადამისამართება 301 /old-location.html http://example.com/new-location/

HTML გადამისამართების გაკეთებამდე ეს კოდი უნდა დაემატოს .htaccess ფაილს ან Apache სერვერის კონფიგურაციის ფაილს. აქ არის ამ მეთოდის სინტაქსი:

[დირექტივა] [სტატუსის კოდი] [ძველი URL] [ახალი URL]

საჭიროების შემთხვევაში შეგიძლიათ შეცვალოთ რომელიმე ამ პარამეტრიდან. მაგალითად, თუ გსურთ ძველი URL დინამიურად ჩაანაცვლოთ ყველა შემდეგი 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. . .

გადამისამართების ნაცვლად შეგიძლიათ გამოიყენოთ RedirectMatch:

RedirectMatch 301 /old-directory/file-(.*).html http://example.com/new-directory/file-$1.html

თქვენ ასევე შეგიძლიათ შეცვალოთ სტატუსის კოდი 301-დან (მუდმივი გადამისამართება) 302-მდე (დროებითი გადამისამართება). ან ნებისმიერი სხვა მოქმედი სტატუსის კოდი. ქვემოთ მოცემულია RedirectMatch მეთოდში გამოყენებული რეგულარული გამონათქვამების სახელმძღვანელო:

  • ან სიმბოლოს არარსებობა);
  • $1 - აბრუნებს პირველ შესაბამის შაბლონს (.*) .
URL-ების გადამისამართება mod_rewrite Apache-ით

Apache-ით გადამისამართების უფრო ფუნქციონალური გზაა მისი mod_rewrite გადაწერის მოდულის გამოყენება. აქ არის რამოდენიმე მაგალითი, რომელიც შეიძლება დაემატოს .htaccess ან Apache კონფიგურაციის ფაილს.

მაგალითი 1: გადამისამართება www-დან www-ის გარეშე

ეს HTML გადამისამართების კოდი გადამისამართებს URL-ების ყველა www ვერსიას მათ ექვივალენტურ არა www ვერსიებზე.

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

ამას კანონიზაცია ჰქვია. აქ მოცემულია რამდენიმე შენიშვნა ამ მაგალითში გამოყენებული რეგულარული გამოხატვის შესახებ:

  • .
  • - სიტყვასიტყვით შეესაბამება პუნქტს;
  • $ - აღნიშნავს მოთხოვნილი URI-ს დასასრულს;
(.*) - შეესაბამება ნებისმიერ სიმბოლოს (ან სიმბოლოების გარეშე);

მაგალითი 2: მთელი დომენის გადამისამართება

HTML-ის მიმდინარე დომენიდან ახალზე გადამისამართებისთვის:

RewriteRule ^/(.*) https://new-domain.tld/$1

ანალოგიურად, შეგიძლიათ მოთხოვნების გადამისამართება მიმდინარე საიტის ქვედომენიდან ახალი საიტის ქვედომენზე:

RewriteCond %(HTTP_HOST) (.*).old-domain.tld RewriteRule ^/(.*) https://%1.new-domain.tld/$1

  • აქ მოცემულია რამდენიმე შენიშვნა ამ მაგალითში გამოყენებული რეგულარული გამოხატვის შესახებ:
  • $ - აღნიშნავს მოთხოვნილი URI-ს დასასრულს;
  • ^ - აღნიშნავს მოთხოვნილი URI-ს დასაწყისს;
  • $1 - ემთხვევა ფრჩხილების (.*) შაბლონს RewriteRule-ში;
  • %1 - ემთხვევა პირველ ფრჩხილის შაბლონს (.*) RewriteCond-ში

- აგზავნის 301 სტატუსის კოდს და ავალებს Apache-ს შეწყვიტოს წესების დამუშავება.

გთხოვთ გაითვალისწინოთ: რომელიმე ამ მეთოდმა სწორად იმუშაოს, ორივე დომენს უნდა ჰქონდეს ერთი და იგივე ფაილის სტრუქტურა. საქაღალდეები და რესურსები მიმდინარე დომენზე ასევე უნდა არსებობდეს ახალ დომენზე. წინააღმდეგ შემთხვევაში, თქვენ მიიღებთ 404 შეცდომებს თქვენს ახალ დომენზე.

მაგალითი 3: ყველა HTML და PHP ფაილის გადამისამართება

აი კიდევ ერთი, უფრო რთული მაგალითი HTML გადამისამართების სკრიპტის mod_rewrite:

ჩვენ გადამისამართებთ ყველა მოთხოვნას ნებისმიერ HTML ან PHP ფაილზე, რომელიც მდებარეობს /old-directory/ საქაღალდეში. ყველა შესატყვისი მოთხოვნა გადამისამართებულია იმავე ფაილზე, რომელიც მდებარეობს /new-directory/-ში. აქ მოცემულია რამდენიმე შენიშვნა ამ მაგალითში გამოყენებული რეგულარული გამოხატვის შესახებ:

  • ^ - აღნიშნავს მოთხოვნილი URI-ს დასაწყისს;
  • $ - აღნიშნავს მოთხოვნილი URI-ს დასასრულს;
  • .
  • (html php) - ემთხვევა ან html ან php;
  • — ხდის შაბლონის რეგისტრის არასენსიტიურს;
  • %1 - ემთხვევა პირველ ფრჩხილის შაბლონს (.*) RewriteCond-ში;
  • %2 - ემთხვევა მეორე ფრჩხილის შაბლონს (html|php) RewriteCond-ში;
  • %1 - ემთხვევა პირველ ფრჩხილის შაბლონს (.*) RewriteCond-ში
გადამისამართების შეცდომა 404 Apache-ს გამოყენებით

აქ არის მოსახერხებელი html კოდი, რათა გადამისამართოთ ყველა 404 "არ ნაპოვნი" შეცდომა კონკრეტულ URL-ზე.

სხვა გვერდზე გადამისამართების ან გადამისამართების მაგალითები.

გადამისამართება HTML-ში // გვერდის განახლება 5 წამის შემდეგ: // გადამისამართება https://www.google.com-ზე 5 წამის შემდეგ: // გადამისამართება https://www.google.com-ზე დაუყოვნებლივ: გადამისამართება JavaScript-ში

ჩანაცვლება() მეთოდი საშუალებას გაძლევთ შეცვალოთ ერთი გვერდი მეორეთი ისე, რომ ეს ჩანაცვლება არ აისახოს ბრაუზერის HTML გვერდების (ისტორიის) დათვალიერების ისტორიაში.

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

Reload() მეთოდი მთლიანად ახდენს ბრაუზერის ქცევის სიმულაციას, როდესაც დააწკაპუნებთ გადატვირთვის ღილაკზე ინსტრუმენტთა პანელში. თუ მეთოდს დაურეკავთ არგუმენტის გარეშე ან დააყენებთ true-ზე, ბრაუზერი შეამოწმებს დოკუმენტის ბოლო მოდიფიკაციის დროს და ჩატვირთავს მას ან ქეშიდან (თუ დოკუმენტი არ არის შეცვლილი) ან სერვერიდან. ეს ქცევა შეესაბამება გადატვირთვის ღილაკზე დაწკაპუნებას. თუ არგუმენტად მიუთითებთ false-ს, ბრაუზერი განაახლებს მიმდინარე დოკუმენტს სერვერიდან. ეს ქცევა შეესაბამება გადატვირთვისა და კლავიატურის გადართვის ღილაკების ერთდროულად დაჭერას (გადატვირთვა+shift).

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

შემდეგი მაგალითები ასევე გადამისამართდება Google-ზე:

მდებარეობა="https://www.google.com"; document.location.href="https://www.google.com";

setTimeout ფუნქციის გამოყენებით შესაძლებელია გადამისამართების დაყოვნების განხორციელება გადამისამართების შესრულებამდე (მაგალითში - 5 წამი):

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

გადამისამართების მარტივი მაგალითი ტაიმერით:

varsec=10;

ფუნქცია Sec() ( document.getElementById("sec").innerHTML=sec; sec--; if(sec==1) ( location.replace("https://www.google.com") ) setTimeout(" Sec()",1000); ) Sec(); გთხოვთ დაელოდოთ 10 წამს ან მიჰყევით ამ ბმულს:

https://www.google.com

PHP-ს აქვს header() ფუნქცია, რომელიც საშუალებას გაძლევთ არა მხოლოდ შეცვალოთ სტანდარტული სათაურები, არამედ დაამატოთ ახალი.

სინტაქსი:

// სტრიქონი არის სათაურის სრულად ჩამოყალიბებული სტრიქონი, რომელიც უნდა დაემატოს (უკანასკნელი ხაზის მიწოდების "\n" გარეშე) // ჩანაცვლება განსაზღვრავს, უნდა შეიცვალოს იგივე სახელების სათაურები (true), ან დაერთოს ბოლოს ( false) // http_response_code განსაზღვრავს http პასუხის კოდს (300, 301, 302 და ა.შ.) void header (string string [, bool replace = true [, int http_response_code]]);

გამოყენების მაგალითები:

Header ("განახლება: 0; url=/error404.html"); // გადამისამართება შეცდომის გვერდზე დაუყოვნებლივ (დაყოვნების გარეშე) header ("Refresh: 5; url=https://www.google.com/"); // გადამისამართება Rambler-ის მთავარ გვერდზე გვერდის ჩატვირთვიდან 5 წამის შემდეგ. header ("Location: /", true, 307); // გადამისამართება საიტის მთავარ გვერდზე 307 გადამისამართების გამოყენებით. header("Location: /article/page.htm", true, 303); // გამოიყენეთ 303 გადამისამართება საიტის შიდა გვერდზე გადამისამართებლად. header ("მდებარეობა: http://google.ru/search?q=redirect"); // 302 გადამისამართების გამოყენებით, გადამისამართება Google-ის ძიებაში სიტყვების გადამისამართებისთვის (ლოკაციის გამოყენებისას გადამისამართების კოდის მითითების გარეშე, 302 გამოიყენება ნაგულისხმევად). header("მდებარეობა: http://yandex.ru/yandsearch?text=redirect", true, 301); // გააკეთეთ გადამისამართება 301 გადამისამართების გამოყენებით Yandex-ში სიტყვის გადამისამართების მოსაძებნად.

HTML-ის გადამისამართება PHP-ზე:

შექმენით ფაილი links.txt სკრიპტის დირექტორიაში ბმულების სიით, თითო სტრიქონზე.



რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: