Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [subdomeny] Przekierowanie do katalogu
Forum PHP.pl > Forum > PHP
vi-valdi
Prosę o pomoc w następującej sprawie:

Dwie domeny np. adres1.pl i adres2.pl wskazują jeden serwer wirtualny.
Dodatkowo każda subdomena (dowolny_string.adres1.pl itd) od powyższych domen wskazuje na ten sam serwer. W katalogu głównym serwera umieszczam plik index.php

[php:1:b12ba1219c]<?php
if ($GLOBALS["HTTP_HOST"] == "www.adres1.pl") { $url = "adres1/"; }
elseif ($GLOBALS["HTTP_HOST"] == "adres1.pl") { $url = "adres1/"; }
elseif ($GLOBALS["HTTP_HOST"] == "www.adres2.pl") { $url = "adres2/"; }
elseif ($GLOBALS["HTTP_HOST"] == "adres2.pl") { $url = "adres2/"; }
else { $url = "blad.php"; }
Header ("Location: $url");
?>[/php:1:b12ba1219c]

Czy ktoś ma pomysł jak napisać skrypt, żeby każdy adres z subdomeną wskazywał na katalog właściwy dla jej domeny, wtedy niepotrzemne były by warunki:

[php:1:b12ba1219c]<?php
if ($GLOBALS["HTTP_HOST"] == "www.adres1.pl") { $url = "adres1/"; }
elseif ($GLOBALS["HTTP_HOST"] == "www.adres1.pl") { $url = "adres1/"; }
?>[/php:1:b12ba1219c]

Jeżeli namieszałem i nie jasno przedstawiłem, to służę wyjaśnieniami.
Z góry dziekuję za wszelką pomoc.
seaquest
jest sposób

[php:1:eabef09f6e]<?php
$address = parse_url($_SERVER["HTTP_HOST"]);

$host = str_replace(array("www.",".pl","",$address['host']);

Header("Location: {$host}/");

?>[/php:1:eabef09f6e]

aha i nie mowi sie dziekuje, tylko daje sie punkta ;-)
vi-valdi
Dziękuję mówię bo jestem miły i uprzejmy, a punkta daję z założenia.
Jeden juz masz bo sprawe uprościłeś, ale nie do końca o to mi chodziło.
Owszem www z adresu ładnie znika, ale co będzie gdy wpiszę np.
www.blebble.adres1.pl to wyskoczy mi strona informująca o błędzie.

? Jak zrobić aby usówać początkowy (dowolny) string z adresu aby pozostało tylko adres1.pl
seaquest
ale jeżeli domena bleble.adres1.pl nie istnieje to wyswietli 404, a jezeli istnieje, to i tak otworzy sie katalog, dla ktorego przypisana jest domena
vi-valdi
OK. Wyjaśnię najprościej jak się da.

www.adres1.pl
bleble.adres1.pl
blabal.adres1.pl
dowolny_string.adres1.pl
...
www.dowolny_string.adres1.pl , ... itd

ma wskazywać na jeden katalog: adres1, a

www.adres2.pl
bleble.adres2.pl
blabal.adres2.pl
dowolny_string.adres2.pl
...
www.dowolny_string.adres2.pl , ... itd

ma wskazywać na jeden katalog: adres2

Chodzi o to żeby nie trzeba było dla każdej możliwej subdomeny wpisywac warunku tylko zrobić to raz hurtowo.
seaquest
kod

[php:1:7a0d8d8484]
<?php

$address = parse_url($_SERVER["HTTP_HOST"]);

$host = explode(".",$host);
$max = count($host)-2;
$head = $host[$max];
Header("Location: {$head}/");

?>[/php:1:7a0d8d8484]

teraz to gosc moze nawet wpisac ble.ble.ble.ble.adres1.pl albo moze com ;-)
flegmucha
A może by tak skorzystać ze switch($HTTP_HOST) ?
enceladus
A po co zaprzęgać do tego php - nie lepiej zrobić to na poziomie konfiguracji virtualek w apache, ewentualnie przez mod_rewrite questionmark.gif?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.