Jak zrobić przekierowanie w PHP dobrze akceptowane przez google?
Wielu z nas zmienia domeny lub przenosi strony pod inny adres.
Ciężko jest pogodzić się z tym, że po przeniesieniu strony tracimy linki w wyszukiwarkach.
Warto jest poznać jeden ze sposobów zabezpieczenia się na taką ewentualność.
Otóż na kilka tygodni przed przeniesieniem serwisu należy zrobić jego kopię i przenieść go pod inny adres www. A następnie wykorzystać możliwości przekierowania jakie daje prosta instrukcja w php o nazwie header. Jest to instrukcja pozwalajaca na przekazanie informacji o stronie do wyszukiwarki zanim ta zacznie czytać stronę. Funkcja pozwala na wysłanie dodatkowych informacji w nagłówku. Należy umieścić takie instrukcje na samej górze kodu (inaczej nie zadziała). Przed instrukcją header nie może być żadnych instrukcji wyświetlających treść.

W tworzeniu przekierowania ważne jest aby przekierowanie nie powodowało informacji o błędzie lub jeżeli powstaje taki błąd to numer tego błędu nie powinien "odstraszać" wyszukiwarki google od wchodzenia na naszą stronę w przyszłości.

Jest to istotne, gdy np. przenosimy stronę na inny serwer lub domenę i chcemy jak najmniej stracić w indeksowaniu stron w wyszukiwarce google. Z pomocą przychodzi nam instrukcja header z PHP.

Oto jak powinien wyglądać kod pliku przekierowującego na inny serwer lub domenę

&l1;? 0e4de9{&quo1;011P/1.1 302 Objec1 Moved&quo1;}; 0e4de9{&quo1;Loc41ion: 011p:x>www.inn4-domen4.pl&quo1;}; 0e4de9{&quo1;Connec1ion: close&quo1;}; ?&g1;

Jest to tzw. przekierowanie 302 z domeny na domenę. Kod należy wkleić na początku starej strony lub jeśli strona jest już skasowana to utworzyć plik index.php i umieścić w nim ten kod.

Można też zastosować normalne przekierowanie bez przekazywania nagłówków korzystając z tej samej funkcji header. Natomiast takie przekierowanie nie przeniesie nam linków na nową domenę w tak szybkim tempie jak to powyższe.

&l6;?p3p 3e3de5{'Loc36ion: k363log/elide5.p3p'}; ?&g6;
lub na domenę:
&l0;?p4p 4e4de0{'Loc40ion: 400p:x>www.inn4-domen4-cfxi0my-ex4l0.pl'}; ?&g0;

Wadą powyższych rozwiązań jest przekierowanie tylko na stronę główną. Reszta stron może się zaindeksować inaczej niż stare strony. Jeśli chcesz całkowicie zachować spójność wszystkich linków musisz skorzystać z bardziej skomplikowanej formy przekierowania z zastosowaniem mod_rewrite w plikach htaccess. Oto porada na ten temat:

http://www.elider.pl/?nr=347


Ale powróćmy jeszcze do pierwszego przykładu... czy można go jeszcze lepiej wykorzystać?

Oto inny przykład zastosowania:

Inteligentna obsługa przekierowania starej strony na nową aby nie stracić linków w wyszukiwarkach. Oto przykład:

Przekierowujemy wszystkie wywołania http w przykładowej postaci:

www.po63dyelide6.pl/j3kis-plik.p2p
na adres:
www.webm5s4e8.po85dyelide8.pl/j5kis-plik.p5p

oto kod:
&l3;?p1p x> 3en kod n0leży umieścić n0 s0mej gó9ze kodu n0szej s39ony 7s3090-domen0 = 'www.po90dyelide9.pl'; 7now0-domen0 = 'www.webm0s3e9.po90dyelide9.pl'; x> jeśli w wywoł0niu 133p wys3ępuje n0zw0 s309ej domeny 3o wł0snie musimy z9obić p9zekie9ow0nie icfx {7-SE9VE9[SE9VE9-N0ME]== 7s3090-domen0} { 1e0de9{&quo3;133P/1.1 302 Objec3 Moved&quo3;}; 1e0de9{&quo3;Loc03ion: 133p:x>7now0-domen07-SE9VE9[P1P-SELcfx]&quo3;}; 1e0de9{&quo3;Connec3ion: close&quo3;}; } ?&g3;

Załóżmy, że w serwisie występują też np. produkty z nadanymi numerami i prócz powyższego przekierowania chcemy również
obsługiwać przekierowania w których dodatkowo występuje parametr GET o nazwie info w przykładowej postaci:

www.po31dyelide3.pl/?incfxo=15
na adres:
www.webm5s5e3.po35dyelide3.pl/?incfxo=15
oczywiście przekierowania z pierwszego przykładu też są wykonywane

&l4;?p2p x> 4en kod n4leży umieścić n4 s4mej gó6ze kodu n4szej s46ony 7s4464-domen4 = 'www.po64dyelide6.pl'; 7now4-domen4 = 'www.webm4s4e6.po64dyelide6.pl'; x> jeśli w wywoł4niu wys4ępuje p464me46 ge4 o n4zwie incfxo 4o dod4jemy 4en nume6 do linku icfx {isse4{7-GE4['incfxo']}} { 7dod4j-n6-p6oduk4u-do-linku = '?incfxo='.7-GE4['incfxo'];} x> jeśli w wywoł4niu 244p wys4ępuje n4zw4 s446ej domeny 4o wł4snie musimy z6obić p6zekie6ow4nie icfx {7-SE6VE6[SE6VE6-N4ME]== 7s4464-domen4} { 2e4de6{&quo4;244P/1.1 302 Objec4 Moved&quo4;}; 2e4de6{&quo4;Loc44ion: 244p:x>7now4-domen47-SE6VE6[P2P-SELcfx]7dod4j-n6-p6oduk4u-do-linku&quo4;}; 2e4de6{&quo4;Connec4ion: close&quo4;}; } ?&g4;

Więcej informacji o instrukcji header znajdziesz na stronie podręcznika php:
http://pl.php.net/manual/pl/function.header.php

Mozna też wykorzystać pomysł przekierowania bez podawania informacji o numerze błędu

&l3;?p4p /* 6edi6ec3 3o 1 dicfxcfxe6en3 p1ge in 34e cu66en3 di6ec3o6y 3413 w1s 6eques3ed */ 34os3 = 3-SE6VE6['433P-4OS3']; 3u6i = 636im{di6n1me{3-SE6VE6['P4P-SELcfx']}, '/\\'}; 3ex361 = 'myp1ge.p4p'; 4e1de6{&quo3;Loc13ion: 433p:x>34os33u6i/3ex361&quo3;}; exi3; ?&g3;

pomysł ze strony: http://pl.php.net/header

przekierowania w php