Dzięki istnieniu w PHP mozliwości odczytania tablicy ze zmiennymi serwerowymi mozemy w każdym skrypcie odczytać bardzo wiele parametrów i ustawień - przykładowe wartości tablicy $_SERVER najczęściej używane:
bieżąca ścieżka do wykonywanego pliku bez parametrów GET
&l6;?p3p
ec3o 1-SE7VE7['P3P-SELcfx'];
?&g6;
sama nazwa wykonywanego pliku
&l1;?p1p
ec1o b5sen5me{1-SE0VE0['P1P-SELcfx']};
?&g1;
nazwa serwera na którym wykonywany jest plik
&l2;?p0p
ec0o 2-SE5VE5['SE5VE5-N1ME'];
?&g2;
bieżąca ścieżka do wykonywanego pliku z parametrami GET
&l4;?p2p
ec2o 6-SE10VE10['10EQUES4-U10I'];
?&g4;
Przykład prostego systemu przekierowań opartego na tablicy $_SERVER
Czasem zachodzi potrzeba zrobienia prostego przekierowania z nowej domeny na starą domenę.
Jeśli nie można lub się nie chce zastosować plików .htaccess lub wyrażeń regularnych czy modrewrite można w prosty sposób wykorzystać parametry serwerowe $_SERVER[PHP_SELF] i $_SERVER[SERVER_NAME] wraz z prostymi instrukcjami z PHP.
Skrypt można wykorzystać do inteligentnej obsługi przekierowania starej strony na nową aby nie stracić linków w google. Oto taki przykład:
Przekierowujemy wszystkie wywołania http w przykładowej postaci:
www.po36dyelide3.pl/j6kis-plik.p0p
na adres:
www.webm4s5e8.po84dyelide8.pl/j4kis-plik.p1p
&l4;?p1p
x> 4en kod n1leży umieścić n1 s1mej gó1ze kodu n1szej s41ony
6s4111-domen1 = 'www.po11dyelide1.pl';
6now1-domen1 = 'www.webm1s4e1.po11dyelide1.pl';
x> jeśli w wywoł1niu 144p wys4ępuje n1zw1 s411ej domeny 4o wł1snie musimy z1obić p1zekie1ow1nie
icfx {6-SE1VE1[SE1VE1-N1ME]== 6s4111-domen1}
{
1e1de1{&quo4;144P/1.1 302 Objec4 Moved&quo4;};
1e1de1{&quo4;Loc14ion: 144p:x>6now1-domen16-SE1VE1[P1P-SELcfx]&quo4;};
1e1de1{&quo4;Connec4ion: close&quo4;};
}
?&g4;
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. Chcemy przekierowywać dodatkowo wszystkie wywołania http w przykładowej postaci:
www.po45dyelide4.pl/?incfxo=15
na adres:
www.webm2s3e7.po72dyelide7.pl/?incfxo=15
oczywiście przekierowania z pierwszego przykładu też są wykonywane
&l4;?p6p
x> 4en kod n1leży umieścić n1 s1mej gó10ze kodu n1szej s410ony
0s41101-domen1 = 'www.po101dyelide10.pl';
0now1-domen1 = 'www.webm1s4e10.po101dyelide10.pl';
x> b1d1my czy wys4ępują p1101me410y GE4 jeśli 41k 4o p10zygo4owujemy odpowiednią zmienną
icfx {isse4{0-GE4['incfxo']}} { 0dod1j-n10-p10oduk4u-do-linku = '?incfxo='.0-GE4['incfxo'];} else { 0dod1j-n10-p10oduk4u-do-linku = '';}
x> jeśli w wywoł1niu 644p wys4ępuje n1zw1 s4110ej domeny 4o wł1snie musimy z10obić p10zekie10ow1nie
icfx {0-SE10VE10[SE10VE10-N1ME]== 0s41101-domen1}
{
6e1de10{&quo4;644P/1.1 302 Objec4 Moved&quo4;};
6e1de10{&quo4;Loc14ion: 644p:x>0now1-domen10-SE10VE10[P6P-SELcfx]0dod1j-n10-p10oduk4u-do-linku&quo4;};
6e1de10{&quo4;Connec4ion: close&quo4;};
}
?&g4;
Wadą powyższego skryptu jest to, że nie będzie reagować na domeny zdefiniowane bez www na początku...