Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Subdomeny
Forum PHP.pl > Forum > Przedszkole
MateuszS
Witam, mam pytanie

Mam strone na ktorej sa 4 glowne kategorie, kazda jest wyswietlana jako osobna strona, zrobilem to na zasadzie sesji np

if($_SESSION['category']==jeden){
// strona dla kategorii jeden

}

itd. Potem chcialbym podpiac subdomeny

jeden.strona.pl, da sie tak? czy trzeba na 4 osobnych plikach w 4 katalogach?

Moze includami? da sie jakos?
piotrekkr
Po pierwsze żeby rozpoznać subdomeny musi je przechwycić apache potem musisz użyć .htaccessa do wykrycia subdomeny:

Kod
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domena\.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?subdomena=%1 [L]


a potem w skrypcie $_GET['subdomena']
MateuszS
Dzieki, czyli jest to mozliwe? Np dam $_GET['subdomena'] na strone na ktora bede mial $_SESSION['category']='jeden'
piotrekkr
Tak możliwe robiłem coś podobnego kilka razy. Ciastko sesyjne powinno być dodatkowo ustawione dla wszystkich subdomen czyli:
  1. session_set_cookie_params ( 3600 , '/', '.domena.pl')
MateuszS
RewriteRule ^(.*)$ /index.php?subdomena=%1 [L]


i tak 4 razy dla wszystkich subdomen?

Potem mam juz subdomene np. jeden.strona.pl ? jeden jako get?

Sorka nie bardzo to rozumiem, co ma Get do subdomeny. Mozesz mi to wytlumaczyc?
piotrekkr
Przez _GET dowiesz sie na jakiej subdomenie aktualnie jest odpalony skrypt nie musisz dla każdej robić oddzielnie bo (.*) wyłapuje i zapamiętuje subdomeny o każdej nazwie.

Kod
#włączasz rewrite
RewriteEngine on
#jesli adres nie odwołuje się bezpośrednio do jakiegoś pliku to działaj dalej
RewriteCond %{REQUEST_FILENAME} !-f
#wyłapujesz i zapamiętujesz sobdomene do zmiennej %1
RewriteCond %{HTTP_HOST} ^(.+)\.domena\.pl$ [NC]
#przepisujesz adres z subdomeną na /index.php?subdomena=wyłapana_subdomena&reszta parametrów przekazanych do skryptu
RewriteRule ^(.*)$ /index.php?subdomena=%1&$1 [L]


Pawel_W
do obsługi subdomen potrzebni ci jeszcze wildcard winksmiley.jpg
jerry89
Sorry, że troszkę odkopie temat. Mam takie zadanie, na domenie glownej stoi Wordpress. Chcę by każda subodmena wskazywala na katalog na tym serwerze o takiej samej nazwie jak nazwa danej subdomeny. Wszystko wydawaloby sie wporządku, mam wlączony wildcard. Oto moj .htaccess
  1. Options +FollowSymlinks
  2.  
  3. RewriteEngine On
  4. RewriteBase /
  5. RewriteCond %{HTTP_HOST} !^www.domena.org$
  6. RewriteCond %{HTTP_HOST} !^domena.org$
  7. RewriteCond %{HTTP_HOST} ^www\.(.*)\.domena.org$
  8. RewriteRule .* %1/$1
  9.  
  10. <IfModule mod_rewrite.c>
  11.  
  12. RewriteCond %{REQUEST_FILENAME} !-f
  13. RewriteCond %{REQUEST_FILENAME} !-d
  14. RewriteRule . /index.php [L]
  15.  
  16. </IfModule>
  17.  
  18. # END WordPress


Wszystko działa niby jak powinno jednak niestety kazdy plik/link subodmeny wskazuje na nią samą. Powiedzmy:
www.subdomena.domena.pl/plik.php wskazuje nie na dany plik a na www.subdomena.domena.pl
Mogłby ktos pomoc? Z ew. wyjasnieniem.
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.