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