Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak zrobić użytkownik.domena.pl, jeśli to możliwe krok po kroku
mal2065
post 27.11.2008, 20:27:14
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Witam,

piszę stronę, która ma umożliwić użytkownikom tworzenie swoich stron.

Strony maja być dostępne pod adresem www.uzytkownik.domena.pl. Pliki strony użytkownika znajdują się w katalogu www.domena.pl/litera/uzytkownik. Jak to zrobić? Czy wystarczy przekierowanie mod_rewrite? Jeśli tak, to jakie?


Mam hosting, który umożliwia mi utworzenie tylko kilku subdomen, a więc opcja fizycznego ich tworzenia nie wchodzi w grę... Moduł mod_rewite jest aktywny. Moduł mod_vhost_alias prawdopodobnie nie jest aktywny- nie ma o nim w zmianki przy wywołaniu phpinfo() na docelowej stronie. Hosting w komercyjnej firmie.


Będę wdzięczny za jak najbardziej szczegółową informację.
Go to the top of the page
+Quote Post
ShadowD
post 27.11.2008, 21:59:33
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Nie jestem pewien ale wydaje mi się, że jeśli masz domenę wykupioną na własność nie jakieś darmowe typu xt.pl to jesteś w stanie w pliku .htaccess dać przekierowanie i powinno być ok, jak znajdę mój skrypt to Ci podeślę...

Ok mam coś:
RewriteCond %{HTTP_HOST} ^stronawww.pl$ [NC]

Musisz pokombinować nie gwarantuje, że można to osiągnąć dzięki^^...


Ten post edytował ShadowD 27.11.2008, 22:04:25


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
kwiateusz
post 27.11.2008, 22:05:18
Post #3


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




w dns ustawia sie wildcard, dzieki czemu wszystkie zapytania sa kierowane do domena.pl i w index.php sprawdzasz sobie jaki był adres i z niej wyciagasz sobie nazwe uzytkownika smile.gif
Go to the top of the page
+Quote Post
mal2065
post 27.11.2008, 22:24:20
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Dzięki za podpowiedzi..

ShadowD
Mam domenę wykupioną na własność i w pliku .htaccess mam już inne przekierowania typu www.domena.pl/rej.php?key=123 na www.domena.pl/rej/123, ale chodzi mi właśnie o takie "wirtualne" subdomeny użytkownika.. spróbuję Twojego skryptu.

kwiateusz
Czy możesz mi wskazać, gdzie znajdę takie ustawienia? Domenę mam w xxx.pl i tam ustawiam sobie przekierowanie na zewnętrzne DNS yyy.pl, gdzie mam hosting.

"i w index.php sprawdzasz sobie jaki był adres i z niej wyciagasz sobie nazwe uzytkownika" -> czy możesz mi również wskazać jakieś tutoriale uczące takiego podejścia? Rozumiem, że np. sprawdzam w pliku index.php w głównym katalogu nazwę użytkownika i pokazuję treści dla niego przeznaczone? Czy takie podejście jest lepsze, czy może utworzenie dla każdego z użytkowników osobnego katalogu z plikami i przekierowanie wg nazwy użytkownika do jego katalogu z plikami?
Go to the top of the page
+Quote Post
kwiateusz
post 27.11.2008, 22:34:28
Post #5


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




na yyy.pl powinieneś mnieć dostep do zarzadzania wpisami w dns, jesli nie masz to napisz do admina zeby dodał wildcard do Twojej domeny, http://www.vealheim.com/php-mysql/subdomen...card-dns-i-php/ przydatny link, głównie ten listing z php.

jak juz okreslisz jaki to użytkownik to możesz zrobic dowolne rzeczy smile.gif czy zaincludujesz plik iz jego katalogu, czy pokazesz cos z z bazy, pełna dowolność smile.gif
Go to the top of the page
+Quote Post
mal2065
post 27.11.2008, 22:40:09
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Dzięki wielkie biggrin.gif

Teraz mam tylko nadzieję, że mi to ustawią.
Go to the top of the page
+Quote Post
ShadowD
post 27.11.2008, 22:54:18
Post #7





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Teraz ja mam pytanie jeśli wpisze w pasek www.shadowd.aid.pl przekieruje mnie na aid.pl czy nadal w pasku będzie shadowd.aid.pl??


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
mal2065
post 28.11.2008, 15:34:07
Post #8





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Witam ponownie!

Chciałem zadać jeszcze pytanie.

Czy powyższe rozwiązania tj.:

1. zastosowanie wildcarda - użytkownik wpisuje w pasek adresu cos.domena.pl i przenosi go do katalogu głównego, gdzie skrypt decyduje o tym, co dalej wyświetlić na podstawie tego, czym było "cos"
2. przekierowanie mod rewrite typu www.uzytkownik.domena.pl -> www.domena.pl/uzytkownik/

są ze sobą związane i należy ich użyć razem, aby osiągnąć efekt uzytkownik.domena.pl, czy też każdego z nich można użyć z osobna i każde da ten efekt. I przyłącze się do poprzednika - w jaki sposób osiągnąć efekt (dla technik 1 i 2), aby w pasku przeglądarki widoczny był adres uzytkownik.domena.pl?

Czy są jakieś tutoriale do tego tematu? Post pod linkiem http://www.vealheim.com/php-mysql/subdomen...card-dns-i-php/ nie jest dla mnie zbyt wyczerpujący...
Go to the top of the page
+Quote Post
AxZx
post 28.11.2008, 16:45:01
Post #9





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

Ostrzeżenie: (0%)
-----


a czy masz dostęp do httpd oraz do konfiguracji DNS?


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
mal2065
post 28.11.2008, 17:06:07
Post #10





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


httpd - czyli, katalog z plikami strony? - tak, mam dostęp
dns - jedyne ustawienia dns, do jakich mam dostęp, to adres dnsów w panelu konfiguracji domeny
Go to the top of the page
+Quote Post
ShadowD
post 28.11.2008, 17:22:52
Post #11





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Moim zdaniem pkt 2 jest lepszym rozwiązaniem poszukałem i znalazłem stronkę która powinna Ci pomóc:

http://serwis.magazynyinternetowe.pl/artyk...rem_apache.html


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
kwiateusz
post 28.11.2008, 17:32:11
Post #12


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




tylko czy mi sie wydaje czy w przypadki mod_rewrite te wszystkie subdomeny trzebaby tworzyć recznie? bo powiem szczerze nie wykorzystywałem mod_rewrite do tego jeszcze smile.gif
Go to the top of the page
+Quote Post
mal2065
post 28.11.2008, 17:37:57
Post #13





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Dzięki przyda się na pewno. Tym bardziej, że jest przykład. I tak myślę sobie, że skoro jest to przekierowanie i wpisanie w pasek adresu, który i tak będzie interpretowany, żeby pokazać zawartość katalogu, to subdomena nie musi chyba istnieć nawet..

Bardzo Wam dziękuję. Zajmę się teraz plikiem .htaccess i dalej monitoruję wątek, bo ciekawie się robi biggrin.gif
Go to the top of the page
+Quote Post
ShadowD
post 28.11.2008, 17:50:00
Post #14





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Cytat(kwiateusz @ 28.11.2008, 17:32:11 ) *
tylko czy mi sie wydaje czy w przypadki mod_rewrite te wszystkie subdomeny trzebaby tworzyć recznie? bo powiem szczerze nie wykorzystywałem mod_rewrite do tego jeszcze smile.gif


Ja też nie, ale udało mi się znaleźć ciekawy artykuł który opisuje jak to zrobić zresztą w jednym z pierwszych postów pisałem o tym. Trzeba tylko zwracać uwagę czy piszemy $1 czy %1 bo to dwie inne rzeczy i dzięki temu, że istnieje coś takiego jak %1 możemy nie znając nazw subdomen bawić sie nimi do woli a nawet subdomenami subdomen...

Przykład:
Kod
1. RewriteCond %{HTTP_HOST} strona.pl [NC]
2. RewriteCond %{HTTP_HOST} (.*).strona.pl [NC]
3. RewriteRule .* /%2%{REQUEST_URI}


Pozdrawiam...

Ten post edytował ShadowD 28.11.2008, 17:53:23


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
mal2065
post 2.12.2008, 14:10:05
Post #15





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Witam,

dla wszystkich, którzy przeglądają wątek i chcieliby po prostu zrobić sobie subdomeny, nie wnikając w mod_rewrite i nie martwią się wydajnością. Znalazłem kilka skryptów, które są właściwie banalne, ale powinny robić to, co założono w temacie...

http://www.milliscripts.com/
http://sourceforge.net/projects/subsystem/

może komuś się przyda, bo mi nie...

sposób ich działania przedstawiony niżej; kod znajduje się w głównym pliku index.php, gdzie trafia odwiedzający po wpisaniu adresu www i dopiero stąd jest kierowany do katalogu z plikami właściwymi dla "subdomeny", lub na stronę główną, którą trzeba sobie wpisać na sztywno w skrypcie.

Kod
   $subhost = $_SERVER['HTTP_HOST'];
   $subhost = strtolower($subhost);
  
   $subhost = str_replace("www.", "", $subhost);
   $subhost2 = strstr($subhost, "/");
  
   if ($subhost2) {
       $subhost = str_replace($subhost2, "", $subhost);
       }
   if($subhost=="$maindomain" || $subhost=="www.$maindomain") {
       header("Location: http://www.$maindomain/$startpage");
       exit;
       }
  
   if($_SERVER['REQUEST_URI']=="/") {
       $subhost2 = "";
       }
   else {
       $subhost2 = $_SERVER['REQUEST_URI'];
       }
Go to the top of the page
+Quote Post
ShadowD
post 2.12.2008, 14:28:37
Post #16





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


Dla tych którym zależy na prędkości i lubią pliki .htaccess polecam moje rozwiązanie:

1. Włączamy wildcard
2. przykładowy kod:
Kod
RewriteEngine On

#domena www.cmsss.pl
#dodanie 'www.'
RewriteCond %{HTTP_HOST} !^www [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9.]*).domena.pl$ [NC]
RewriteRule ^(.*)$ http://www.%1.domena.pl/$1 [L]

#przekierowywania www
RewriteCond %{HTTP_HOST} ^www.([a-z0-9]*).domena.pl$ [NC]
RewriteCond %{REQUEST_URI} !^/users/[a-z0-9]*/www.*$ [NC]
RewriteRule ^([a-zA-Z0-9/.?]*)$ /users/%1/www/$1 [L]

Powyższy kod gwarantuje przekierowanie z:
- www.USER.domena.pl$
- USER.domena.pl$
Na:
www.domena.pl/USER/www/$

Ps Dlaczego kwiateusz dostał '+' a ja nie. (Pytanie retoryczne) ;p

Pozdrawiam

Ten post edytował ShadowD 2.12.2008, 14:29:33


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
mal2065
post 2.12.2008, 15:23:54
Post #17





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


A jak już piszesz taki kod, to mógłbym Cię poprosić o dodanie do niego następującej rzeczy?

* sprawdzenie, czy subdomena istnieje - jeśli nie, to przekierowanie na katalog główny "domena.pl" (czy "www.domena.pl")
* i tak na szybko, czy w pasku adresu cały czas pozostanie adres postaci uzytkownik.domena.pl
* i jeszcze coś -> jak "maskować" taki adres uzytkownik.domena.pl/kontakt/ (friendly urls)

Wszystko dla rozpatrywanego i opisanego przez Ciebie kodem przypadku. W ostatnim punkcie chodzi mi o to,jak w przypadku już i tak skomplikowanych dla mnie przekierowań zadbać o friendly urls i jak wtedy wyglądają linki do poszczególnych stron - np. dla tego uzytkownika "kontakt.php"?

Bardzo Ci dziękuję za pomoc! (nawet bez odpowiedzi na te pytania biggrin.gif )
Go to the top of the page
+Quote Post
ShadowD
post 2.12.2008, 16:35:53
Post #18





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

Ostrzeżenie: (0%)
-----


1. Istnieje tz?? Ona zawsze istnieje ponieważ jest włączony wildcard, jedyne co mi przychodzi do głowy to wykorzystanie error 404 lub sprawdzenie czy dany katalog istnieje. Gdy wystąpi błąd 404 czyli gdy nie będzie danego użytkownika zostanie on przekierowany na http://www.domena.pl a oto kod:

ErrorDocument 404 http://www.domena.pl

2. Podam przykład user.domena.pl przekierowuje na user.domena.pl/user ale w pasku nadal jest widoczny user.domena.pl więc użytkownik nawet dobrze nie wie gdzie jest. ;p

3. na wzorze wygląda to tak:

RewriteCond %{HTTP_HOST} ^www.([a-z0-9]*).domena.pl$ [NC]
RewriteCond %{REQUEST_URI} !^/users/[a-z0-9]*/www.*$ [NC]
RewriteRule ^([a-zA-Z0-9/.?]*)$ /users/%1/www/$1 [L]

Wpisując:
www.
USER.domena.pl/index.php?www=mega (dane np plik 'index.php?www=mega')
Przenosi nas na:
www.USER.domena.pl/USER/www/index.php?www=mega (kopiowane dane w tym przypadki 'index.php?www=mega')
A w przeglądarce nadal widzimy:
www.USER.domena.pl/index.php?www=mega

Opisując powywszy przypadek po wpisaniu www.USER.domena.pl/index.php?www=mega znajdujemy się na stronie www.USER.domena.pl/ w katalogu USER/www/ z wybranym plikiem index.php i danymi get $GET['www']=mega.

4. To już jest trochę inny przypadek można zastosować taki skrypt:

RewriteRule ^([a-zA-Z0-9/]*)$ /www/$1.php [L]

Po wpisaniu www.domena.pl/kontakt trafimy na www.domena.pl/kontakt.php a w przeglądarce zostanie www.domena.pl/kontakt.

Napisałem Ci wszystko o co się pytałeś, aby moja praca nie poszła na marne i byś wyniósł coś z tej lekcji zostawiam Ci posklejanie kodu w jedną całość. Jeśli Ci coś nie będzie działać pisz ale całości nie dostaniesz... winksmiley.jpg

Ps Wiem jaki będzie tytuł mojego pierwszego artykułu na php.pl... winksmiley.jpg

Edit:
- Poprawiłem pkt 1
- Sporo literówek

Ten post edytował ShadowD 2.12.2008, 16:44:03


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
mal2065
post 2.12.2008, 16:59:02
Post #19





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.07.2008

Ostrzeżenie: (0%)
-----


Dzięki. Strasznie to zakręcone, ale będę się wczytywał mocno biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:35