Skrypty przekierowania 301

  1. Definicje 301 Przekierowanie Funkcja serwera WWW, która przekierowuje użytkownika z bieżącej strony...
  2. 301 Przykłady przekierowania kodu skryptu
  3. Meta Refresh Redirect (nie najlepszy wybór)
  4. Przykład odświeżania meta (nie najlepszy wybór)
  5. Przekierowanie JavaScript (w ogóle nie zalecane)
  6. Przykład przekierowania Javascript (niezalecane)
  7. Przekierowania po stronie serwera
  8. Przykład przekierowania PHP 301
  9. Przykład przekierowania ASP 301 (VBScript)
  10. Przykład przekierowania ASP 301 (JScript)
  11. Przykład przekierowania ASP .NET 301 (C #)
  12. Przykład przekierowania Cold Fusion 301 (CFM)
  13. Przykład przekierowania JSP / JAVA 301
  14. Przykładowy kod przekierowania CGI / Perl 301
  15. Przetwarzanie stron statycznych tak, jakby były dynamiczne
  16. Przetwarzanie stron .html tak, jakby były one .php w Apache
  17. Przetwarzanie stron .htm tak, jakby były .asp w IIS
  18. Wniosek
  19. Główny artykuł

Definicje 301 Przekierowanie

Funkcja serwera WWW, która przekierowuje użytkownika z bieżącej strony lub witryny na inną stronę lub witrynę, zwracając kod odpowiedzi, który mówi, że oryginalna strona lub witryna została trwale przeniesiona do nowej lokalizacji. Wyszukiwarki lubią te informacje i szybko przeniosą popularność linku (oraz PageRank) na nową stronę szybko i z kilkoma problemami. Nie są też tak narażone na problemy z filtrami duplikującymi. SEO takie jak przekierowania 301 i zazwyczaj są preferowanym sposobem radzenia sobie z wieloma domenami wskazującymi na jedną stronę. 302 Przekierowanie Funkcja serwera WWW, która przekierowuje użytkownika z bieżącej strony lub witryny na inną stronę lub witrynę, zwracając kod odpowiedzi, który mówi, że oryginalna strona lub witryna została tymczasowo przeniesiona do nowej lokalizacji. Wyszukiwarki często interpretują je jako park i poświęcają trochę czasu na zastanowienie się, jak poradzić sobie z konfiguracją. Staraj się unikać przekierowania 302 na swojej stronie, jeśli możesz (chyba że jest to tylko tymczasowe przekierowanie) i nigdy nie używaj ich jako jakiejś formy śledzenia kliknięć dla swoich linków wychodzących, ponieważ mogą one prowadzić do „przejęcia witryny” pod niektórymi okoliczności.

MetaTagi

Tagi HTML, które są zapisywane w części głównej strony HTML i przekazują różne rodzaje informacji, ale w rzeczywistości nie są wyświetlane na stronie jako tekst. Na przykład tytuł, opis i słowa kluczowe strony. The metatag dla tego dokumentu liczy się meta-odświeżanie etykietka. McAnerin Networks oferuje darmowy generator metatag tutaj .

Skrypt po stronie klienta (zeskocz na dół)

Skrypt po stronie klienta to program, który jest przetwarzany na kliencie (zazwyczaj w przeglądarce internetowej) po przesłaniu informacji do użytkownika. W przeciwieństwie do wielu współczesnych przeglądarek internetowych, pająki wyszukiwarek nie uruchamiają skryptów po stronie klienta - dlatego nie można ich używać do wpływania na wyszukiwarki z wyjątkiem pominięcia (tj. Skrypty, które celowo „zostawiają pająka w tyle”, licząc na fakt, że przeglądarki zazwyczaj wykonują skrypty). Przykład skryptu po stronie klienta: Skrypt Java Skrypt po stronie serwera (zeskocz na dół) Skrypt po stronie serwera to program przetwarzany na serwerze , zanim informacja dotrze do komputera przeglądarki. W porównaniu ze skryptem po stronie klienta, który jest przetwarzany na komputerze klienta. Przykłady języków powszechnie używanych jako skrypty po stronie serwera: PHP , JSP , ŻMIJA , ASP.NET , PERL i Zimna fuzja .

PHP

PHP Hypertext Preprocessor (PHP) jest językiem programowania open source po stronie serwera, szeroko używanym do skryptów internetowych i do przetwarzania danych przekazywanych przez CGI. PHP można napisać jako skrypty, które znajdują się na serwerze i mogą generować dane wyjściowe HTML, które są pobierane do przeglądarki internetowej. Alternatywnie, PHP może być osadzone w stronach HTML, które są następnie zapisywane z rozszerzeniem pliku .php. Sekcje PHP strony są następnie analizowane przez silnik PHP na serwerze, a kod PHP jest usuwany przed pobraniem strony do przeglądarki internetowej. Więcej informacji o PHP .

Perl

Practical Extraction and Reporting Language (PERL) to język programowania o otwartym kodzie źródłowym, szeroko wykorzystywany do skryptów internetowych i przetwarzania danych przekazywanych przez CGI. Skrypty Perla nie są osadzone na stronach HTML i nie są pobierane do przeglądarki internetowej, ale znajdują się na serwerze. Wykonują się przez wywołanie z poleceń w stronach HTML lub innych skryptach i mogą generować dane wyjściowe HTML, które są pobierane do przeglądarki internetowej. Więcej informacji o Perlu

JSP

Java Server Page (JSP) to technologia kontrolowania zawartości lub wyglądu stron internetowych za pomocą serwletu Java, małych programów określonych na stronie sieci Web i uruchamianych na serwerze sieci Web w celu zmodyfikowania strony sieci Web przed jej wysłaniem do użytkownika, który go zażądał. Sun Microsystems, twórca Javy, również odnosi się do technologii JSP jako interfejsu programu aplikacji Servlet (API). JSP jest porównywalny z technologią Microsoft Active Server Page (ASP). Więcej informacji JSP Strony ASP Active Server. Specyfikacja umożliwiająca dynamiczne tworzenie stron internetowych za pomocą HTML, skryptów i komponentów serwera ActiveX wielokrotnego użytku. VBScript i JScript to najpopularniejsze języki skryptowe używane w ASP . ASP.NET Zestaw technologii tworzenia stron internetowych sprzedawanych przez Microsoft. Programiści mogą go używać do tworzenia dynamicznych stron internetowych, aplikacji internetowych i usług sieciowych XML. Jest częścią platformy Microsoft .NET i jest następcą stron Microsoft Active Server Pages ( ŻMIJA ) technologia. Chociaż można używać VBScript i JScript z ASP.NET, standardem jest DO# ColdFusion ColdFusion to oparty na znacznikach język programowania pośredniego wykorzystywany głównie do pisania aplikacji internetowych. Język został stworzony przez JJ Allaire i jego brata Jeremy Allaire, ale produkt jest obecnie własnością Macromedia (wkrótce zostanie przejęty przez Adobe). Więcej informacji o ColdFusion. JavaScript JavaScript to język skryptowy - system kodów programowych, stworzony przez Netscape, który można osadzić w kodzie HTML strony internetowej, aby dodać funkcjonalność. JavaScript nie powinien być mylony z językiem programowania Java. Więcej informacji na temat Javascript. C # („C Sharp”) Obiektowy język programowania opracowany przez firmę Microsoft w ramach inicjatywy .NET. Microsoft C # na C ++ i Java. C # został zaprojektowany jako język, który zapewnia równowagę C ++ z szybkim rozwojem, Visual Basic, Delphi i Java. Więcej informacji o C #

Dokładna informacja

Przegląd

Problem z używaniem skryptów do przekierowania polega na tym, że wyszukiwarki nie wykonują ich. Oznacza to, że aby mogły działać, muszą być wykonywane na serwerze, gdy strona jest wywoływana, ale przed otrzymaniem jej przez wyszukiwarkę. Jest tylko jeden wyjątek od tego i zajmiemy się tym za chwilę.

Ogólnie rzecz biorąc, ponieważ wykonanie skryptu i przekierowanie następuje przed przejściem strony do pająka, można użyć dowolnego języka skryptowego, o ile serwer go wykona, a sam język jest w stanie przekierować i odpowiedzieć stanem kod taki jak 301 lub 302.

Ogólnie rzecz biorąc, przekierowanie, które nie określa 301, jest traktowane jako 302, więc aby wykonać właściwy 301, musisz być w stanie określić kod statusu w wybranym języku. Istnieją wyjątki od tego, ale to jest ogólne zachowanie.

301 Przykłady przekierowania kodu skryptu

Przekierowania po stronie klienta

Istnieją dwa typowe typy przekierowań po stronie klienta - meta-odświeżanie i JavaScript, a tylko meta-odświeżanie faktycznie działa w celu przekierowania wyszukiwarki. Jednak, jak zobaczysz, nie jest to dobra robota. Ogólnie przekierowania po stronie klienta są złym pomysłem i należy ich unikać, jeśli to możliwe.

Meta Refresh Redirect (nie najlepszy wybór)

Zacznijmy od złego przykładu. To również bardzo, bardzo powszechny przykład, więc musisz o tym wiedzieć. Istnieje tag HTML zwany meta odświeżeniem, który może wykonywać przekierowania, które wyszukiwarki mogą wykryć i na które reagują. Jest to jedyny wyjątek od pomysłu, że skrypty i tagi po stronie klienta nie mają wpływu na wyszukiwarki. Zwykle patrzą na to.

Pytanie brzmi: jak sobie z tym poradzą? To bardzo ważna sprawa. Po pierwsze, webmasterzy używają tego od lat w dobrej wierze, a jeśli wyszukiwarka go nie zrozumie, w rezultacie wiele dobrych stron nie będzie odpowiednio obsługiwanych.

Tak więc wyszukiwarka musi sobie z tym poradzić. Większość wyszukiwarek zakłada, że ​​odświeżanie, które jest szybsze niż czas pełnego załadowania średniej strony, ma działać jak przekierowanie serwera, natomiast jeśli odświeżenie jest ustawione wystarczająco wysoko, aby użytkownik mógł je zobaczyć i zaktualizować swoje zakładki, to intencją było, aby użytkownik naprawił swoje zakładki, a nie, aby serwer je naprawił. W tym momencie odświeżanie jest bardziej uprzejmością niż instrukcją. Dlatego wyszukiwarki zazwyczaj martwią się tylko szybkimi odświeżeniami.

Teraz wydają się traktować szybkie odświeżanie meta jako 302, a życie jest znacznie lepsze dla wszystkich zaangażowanych. Nie znam żadnych oficjalnych oświadczeń na temat tego, jak radzą sobie z meta odświeżaniem, więc te informacje pochodzą z ustnych wiadomości i testów. Ponieważ jest obsługiwany jako 302, nie jest preferowanym typem przekierowania dla celów SEO.

Yahoo, na swój ogromny kredyt, przedstawił, jak sobie z tym radzą. Jeśli przekierowanie meta jest ustawione na 0 sekund, to będzie traktowane jako przekierowanie 301. Jeśli jest większa niż 1 sekunda, jest traktowana jako przekierowanie 302. Szczerze mówiąc, uważam to za doskonały sposób, aby sobie z tym poradzić.

MSN Search mówi: „Dodanie meta przekierowania do nagłówka strony nie powoduje usunięcia oryginalnej strony z indeksu wyszukiwania MSN; jednak przekieruje odwiedzających do nowej witryny. „Przeczytałem, że oznacza to przekierowanie 302. Ponieważ 302 jest uważany za tymczasowy, oryginalna strona jest przechowywana w indeksie.

ASK najwyraźniej traktuje meta-odświeżenie 0 jako 302, gdzie pobiera stronę docelową zamiast strony źródłowej, ale zachowuje odnośnik do strony źródłowej, dopóki nie zrozumie, co się dzieje.

Zasadniczo wszystkie 4 główne wyszukiwarki obsługują meta-odświeżanie w inny sposób - stanowczo polecam NIE używać go, jeśli masz jakikolwiek wybór. Jeśli musisz, najlepiej zakładasz, że meta-odświeżenie 0 będzie działać najbardziej konsekwentnie i prawdopodobnie będzie traktowane jako 302 przez wszystkich z wyjątkiem Yahoo, którzy będą traktować jako 301.

Jest to sprzeczne z „konwencjonalną mądrością”, że meta-odświeżenie spowoduje zakaz lub karę. Nie prawda. Spowoduje to 302 - co może wyglądać na karę w pewnych okolicznościach. 302's może być złą wiadomością, ponieważ docelowa treść jest traktowana jako należąca do strony źródłowej, co może spowodować porwanie, problemy z duplikacją i wiele innych problemów.

Nie polecam tego, ale może działać jako metoda ostatniej szansy. Caveat Emptor .

Przykład odświeżania meta (nie najlepszy wybór)

<META HTTP-EQUIV = Refresh CONTENT = ”0; URL = http: //www.newdomain.com ”>

Przekierowanie JavaScript (w ogóle nie zalecane)

JavaScript to drugi typ zwykłego przekierowania po stronie klienta. W odróżnieniu od tagu meta-refresh wyszukiwarka zignoruje przekierowanie JavaScript i pozostanie na stronie.

Niektórzy ludzie zdecydowali, że mogą wykorzystać to zachowanie do spamowania wyszukiwarek, wypełniając słowa kluczowe na stronie, a następnie używając szybkiego przekierowania JavaScript, aby przenieść ludzi na następną stronę, pozostawiając pająka pozostanie i indeksowanie strony spamu.

Google wymyślił, jak wykryć tę taktykę latem 2004 r. W rezultacie wiele stron internetowych straciło rankingi, co spowodowało, że co najmniej jedna niesławna firma SEO wszczęła przeciwko niej pozew zbiorowy, a także sprawiła, że ​​wyglądają naprawdę źle.

Krótko mówiąc, przekierowania JavaScript nie działają dla wyszukiwarek, a ich użycie może spowodować zablokowanie wyszukiwarki w zależności od okoliczności.

Nigdy nie używaj przekierowania JavaScript na stronie lub domenie, która ma być pozycjonowana w wyszukiwarkach.

Jedynym powodem, dla którego umieściłem je na tej stronie, jest ostrzeżenie. Czasami można ich używać na stronach, które nie są dostępne dla wyszukiwarek, takich jak niektóre systemy koszyka na zakupy itd., Ale generalnie najlepiej ich unikać.

Przykład przekierowania Javascript (niezalecane)

<typ skryptu = ”tekst / javascript”>
<! -
window.location = „http://www.newdomain.com/”
// ->
</script>

lub

<body onLoad = "setTimeout (location.href = 'http: // xxx', '0')">

Nie mogę wystarczająco podkreślić, że ta metoda NIE jest zalecana.

Efektem netto jest pokazanie ludziom i wyszukiwarkom 2 różnych rzeczy - niezbyt dobrych wyników na początku. Zasadniczo to ryzykowne.

Przekierowania po stronie serwera

Serwery nie przechodzą automatycznie przez każdą obsługiwaną stronę i szukają skryptów do uruchomienia. Sprawdzają tylko pliki, o których wiedzą, że mogą zawierać skrypty po stronie serwera. Oszczędza to koszty serwera i jest bardziej wydajne. Tradycyjnie pliki kończące się na .htm i .html są uważane za statyczne, dlatego większość serwerów nie będzie próbować ich uruchamiać. Możesz zmusić je do rozpoznania jako dynamiczne, ale na ogół nie jest to robione.

Gdy dynamiczna strona jest wywoływana z serwera, serwer najpierw przegląda stronę, a następnie wysyła ją do użytkownika. Następnie wykona wszystkie skrypty, które rozpozna jako skrypty, które powinien wykonać, a następnie prześle wyniki do użytkownika. Oznacza to, że strona dynamiczna może wyglądać zupełnie inaczej na serwerze, niż gdy w końcu dociera do użytkownika. Niektóre systemy CMS mają tylko jedną stronę, a zawartość strony jest kontrolowana przez wysyłane do niej zmienne. Jest to jeden z powodów, dla których wyszukiwarki nie ufają stronom z wieloma zmiennymi.

Aby wykonać skrypt po stronie serwera, serwer musi być skonfigurowany do przetwarzania typu strony, na której jest włączony, a skrypt musi być obecny na stronie (zwykle w nagłówku lub na samej górze strony)

Przykład przekierowania PHP 301

nagłówek („HTTP / 1.1 301 Moved Permanently”);
nagłówek („Lokalizacja: http://www.newdomain.com/newdir/newpage.htm”);
wyjście();

Przykład przekierowania ASP 301 (VBScript)

<% @ Language = VBScript%>
<%
Response.Status = ”301 Moved Permanently”
Response.AddHeader „Location”, „http://www.newdomain.com/newdir/newpage.asp”
response.end
%>

Przykład przekierowania ASP 301 (JScript)

function PermanentRedirect (strDestinationUri) {
Response.Clear ();
Response.Status = 301;
Response.AddHeader („Location”, strDestinationUri);
Response.Flush ();
Response.End ();
}

Uwaga:

„StrDestinationUri” powinno być bezwzględnym URI, aby zapewnić maksymalną kompatybilność z klientem. Funkcja zakłada, że ​​„Response.Buffer = true;” zostało ustawione w pewnym momencie przed wywołaniem funkcji i będzie błędne, jeśli nie (jest to domyślna konfiguracja dla IIS5 i wyższych).

Przykład przekierowania ASP .NET 301 (C #)

<skrypt runat = ”serwer”>
private void Page_Load (nadawca obiektu, System.EventArgs e)
{
Response.Status = „301 Moved Permanently”;
Response.AddHeader („Location”, „http://www.new-url.com/”);
}
</script>

Przykład przekierowania Cold Fusion 301 (CFM)

Po prostu dodaj ten kod do swojej strony ColdFusion:

<.cfheader statuscode = ”301 ″ statustext =” Przeniesiony na stałe ”>
<.cfheader name = ”Location” value = ”http://www.new-url.com/”>

Przykład przekierowania JSP / JAVA 301

Po prostu dodaj ten kod do swojej strony lub skryptu:

<%
response.setStatus (301);
response.setHeader („Location”, „http://www.new-url.com/”);
response.setHeader („Połączenie”, „zamknij”);
%>

Przykładowy kod przekierowania CGI / Perl 301

Perl różni się od powyższych przykładów, ponieważ w ogóle nie pojawia się na stronie. W rzeczywistości jest to skrypt, który jest wywoływany (zwykle z cgi-bin). „Strony” zazwyczaj wyglądają jak „strony.cgi” i są nazywane tak, jakby były skryptami, a nie stronami internetowymi.

#! / usr / bin / perl
użyj cgi;
my $ q = cgi-> new ();
drukuj $ q-> przekierowanie (
-location => 'http://www.newsite.com/newpage.cgi',
-status => 301,
);

Przetwarzanie stron statycznych tak, jakby były dynamiczne

Czasami będziesz chciał wykonać przekierowania na stronach, które są standardowymi statycznymi stronami internetowymi (np. Htm lub html). Jest to szczególnie powszechne, gdy próbujesz przełączyć się ze starego systemu statycznego na nowszy system dynamiczny. Problem polega na tym, że ponieważ wyszukiwarki nie wykonują skryptów, skrypty przekierowania nie będą działać dla wyszukiwarki na stronie statycznej. Co robić?

Cóż, jest poprawka. Bardziej jak kludge. Ale to działa. Co robisz, to powiedzieć serwerowi, że strony z rozszerzeniem .htm (i / lub .html) są rzeczywiście dynamiczne i powinny być traktowane tak, jakby były stronami dynamicznymi. To nieznacznie zwiększy obciążenie twojego serwera (ponieważ wszystkie strony .htm będą przetwarzane przed wyświetleniem), ale jest to bardzo niewielkie i prawdopodobnie nie zauważysz tego.

Nie inaczej byłoby w przypadku obciążenia niż gdybyś i tak przełączył wszystkie strony na dynamiczne.

Przetwarzanie stron .html tak, jakby były one .php w Apache

Możesz zmusić wszystkie strony * .htm do przeanalizowania przez interpreter php z dyrektywą .htaccess:

AddType application / x-httpd-php .html

Dokonaj odpowiednich zmian, jeśli są to dokumenty * .htm, które chcesz przetwarzać:

AddType application / x-httpd-php .htm

Przetwarzanie stron .htm tak, jakby były .asp w IIS

W Menedżerze usług internetowych przejdź do karty „Katalog domowy” właściwości witryny i kliknij przycisk „Konfiguracja”. Na karcie „Mapowanie aplikacji” tego okna możesz kontrolować sposób przetwarzania plików. Chcesz skonfigurować nowe mapowanie dla rozszerzenia HTM, które wygląda dokładnie tak, jak mapowanie ASP. Możesz również zrobić to dla plików HTML, jeśli ich używasz.

Niektóre systemy są skonfigurowane inaczej niż moje - wystarczy spojrzeć na ustawienia stron ASP i powielić je na stronach HTM.

Niektóre systemy są skonfigurowane inaczej niż moje - wystarczy spojrzeć na ustawienia stron ASP i powielić je na stronach HTM

Wniosek

Przekierowywanie skryptów może wiele osiągnąć, a jeśli jest to serwerowe, zazwyczaj jesteś całkiem bezpieczny w odniesieniu do następujących po nim wyszukiwarek. Ogólnie rzecz biorąc, zajmuje mniej czasu i jest łatwiejszy w użyciu przekierowania na serwer WWW Apache lub IIS . Przekierowanie za pomocą skryptów jest jednak legalną techniką dla osób bez pełnej kontroli nad serwerem lub posiadających bardzo specyficzne scenariusze wymagające przekierowania, które nie są obsługiwane bezpośrednio przez serwer WWW.

Kolejny: Geolokalizacja i przekierowania

Główny artykuł

Szczegółowe informacje techniczne

Konkretne scenariusze i sposób radzenia sobie z nimi

O ile nie zaznaczono inaczej, wszystkie artykuły napisane przez Iana McAnerina, BASc, LLB. Copyright © 2002-2004 Wszelkie prawa zastrzeżone. Zezwolenie musi być udzielone na piśmie w celu wykorzystania lub przedruku w dowolnym miejscu, ale na tej stronie, ale zezwalamy na to i nie pobieramy za to opłaty, za wyjątkiem linku zwrotnego. Skontaktuj się z nami po więcej informacji.

Związane z

Pytanie brzmi: jak sobie z tym poradzą?
Co robić?