Jak z poziomu PHP uzyskać ścieżkę lub nazwę do aktualnie wykonywanego pliku i inne parametry skryptu?

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...

Jak zrobić uniwersalny formularz, który może być umieszczony w pliku o dowolnej nazwie i zawsze będzie działał ..?