kreiranje subdomene
imam zahtjev za autoamtskim kreiranjem subromene (i foldera u kojem stoji sadrzaj za nju). kako da to najlakse odradim?
znaci, neki opci scenario je: korisnik dodje na sajt i registrira se za x-dnevno probno koristenje aplikacije. skripte bi mu trebale automatski otvorit poddomenu: username.sajtaplikacije.com, u neki direktorij na sajtu kopirat sve potrebne fajlove (to mi ne treba, naravno), kreirat bazu (ne treba) i da covjek moze x dana isprobavat aplikaciju (cron dnevno provjerava expire date). e sad, ne znam ovo s poddomenama kako da izvedem... moze li se to uopce do kraja automatizirat i ako da, kako? imate li neke konkretne primjere, savjete, smjernice? bilo kakav savjet dobrodosao! hvala unaprijed |
Mozes koristeci Cpanel, tj WMH api.
|
Postoji par načina, a generalno zavisi od toga kako je konfigurisan web server. Npr, možeš kreirati virtualne domene za svaki poddomen (zahteva restart Apachea ako se ne varam), možeš koristiti mod_rewrite da bi matchovao HTTP_HOST promenljivu i redirektovao zahtev na odgovarajuć folder, možeš pomoću mod_rewritea registrovati da čovek zahteva poddomen, redirektovati ga na PHP skripticu koja se ponaša kao ruter (iz $_SERVER uzima vrednost hosta, vadi ime poddomena i dalje prosleđuje zahtev) itd.
Pitanje je samo koliku kontrolu ti imaš nad celim procesom. Najlakše je da imaš potpunu (dadicated server bez "pametnog" CP-a), ali ja sam nešto slično odradio u shared varijanti na TextDriveu (stvar je bila samo za testiranje i nije više online). |
da, to sam propustio navest... dedicated je server... oce li imat pametni CP to jos ne znam (ne ovisi o meni), ali bi ga zaobiso ako je moguce...
ovo mi nije palo na pamet da mod_rewrite koji samo preusmjerava na odredjeni folder... a posto je sve temporary (x dana evaluation perioda), cini mi se kao najelegantnije rjesenje...mislim da cu tako i napravit... hvala Ilija! |
cek cek cek... nesto ipak ne stima :)
pazi, ovo mora otvarat nove poddomene automatski, znaci, korisnik sam bez da iko ista dira mora moc otvorit novu poddomenu a to, koliko je meni poznato, ne ide bez pristupa DNS serveru... molim da me se ispravi ako grijesim. jer, npr... ti dolazis, registriras se s usernameom ilijastuden i odma ti se mora otvorit ilijastuden.aplikacija.net tako da akd za sekundu to ukucas u browser dobijes ono sta se nalazi u www.aplikacija.net/ilijastuden/. ali bez updatea u DNS zoni osnovnog sajta, vratit ce 404, sta ne? redirekcija/rewrite bi bili ok za postojece, ali za otvaranje novih ne kontam kako bi to moglo funkcionirat? |
da slazem se sa Ilijom, catch all virtual host *.sajt.com, onda mod_rewrite da to preusmeri gde treba, i linkovi ka core fajlovima (da ne bi morao da kopiras sve fajove stalno, nego samo konfiguracione). Pogledaj mod_rewrite opciju za RewriteMap, ona moze da ti bude jako zgodna za ovakve stvari, da ne moras da generises .htaccess
Alternativno moze i bez mod_rewrite-a nego da sve preusmeris na jedan index.php u kome ces da imas logiku koja inkluduje posebne konfiguracione fajlove za svaki subdomen. Ja bas pravim tako nesto za wordpress instalaciju da bih mogao sa jednom instalacijom da imam vise blogova na razlicitim subdomenima. EDIT: na ovo pitanje sto si postavio u medjuvremenu odgovor ti je boldovan gore ^^ |
sorry ako pitam/lupim glupost, al ko sto rekoh, prvi puta gledam ove stvari pa mi treba malo vremena. ako moze, da priupitam cisto da vidim kontam li ja uopce o cemu se tu radi...
dakle, kad browser zatrazi bla.domena.com, request ce ipak otic na osnovni hostname (odnosno njegovu IP adresu), jel tako? (ne ide odma 404?) recimo da je to www.domena.com. i gledat ce ima li nekakav virtual host bla.domena.com? ako ima, dat ce ono sta je u httpd.conf receno u virtual hostu, ako nema, vratit ce 404. i ja sad moram u httpd.conf slozit da procita za sta je dosao request i preusmjerit bla.domena.com na www.domena.com/bla, jel tako? drugim rijecima, pricamo li o ovome -> http://httpd.apache.org/docs/1.3/vhosts/examples.html ? ps. tnx na strpljenju... |
mozes li stavit malo 'mesa' (primjer koda) gdje sta radis za izvest ovako nesto?...
|
Mozes to ovako sa DNSom rjeseiti
www IN A 192.168.1.1 ftp IN A 192.168.1.2 mikimaus IN A 192.168.1.10 * IN CNAME www i svi ostali zahtjevi idu na 1 :) tako da skines DNS s vrata :) |
treba ti da je DNS podesen tako da svi domeni i subdomeni pokazuju na istu IP adresu (mada to je obicno default), znaci kao ovo sto je Misk0 napisao (ja to pisem staromodno sa punim domenima, ali to je to :) )
Zatim ti treba virtual host kome ces da kazes sledece: ServerName pera.com ServerAlias *.pera.com time hvatas sve subdomene istim virtualnim hostom. Zatim ti treba mod_rewrite koji ce da bude u webroot-u tog virt. hosta i da radi preusmeravanje ka user verzijama instalacije: RewriteCond %{HTTP_HOST} ^([a-z0-9_\-]+)\.pera\.com$ [NC] RewriteRule ^(.*) /user-direktorijumi/%1/$1 [L] Ovo iznad znaci otprilike: za svaki zahtev pogledaj HTTP_HOST header i ako postoji subdomen u url-u zapamti ga (namestio sam da subdomen moze da ima slova A do Z, brojeve, povlaku i donju crtu, to je onaj [a-z0-9_\-] deo ). Flag [NC] znaci no case, odnosno da zanemari velikai mala slova. Podaci capture-ovani u RewriteCond se pamte u promenjivoj %1. Ukoliko je RewriteCond ispunjen, onda ce se izvrsiti RewriteRule koji ce da izvrsi unutrasnji (nevidljivi za korisnika) redirect na putanju po zelji (ja namestio /user-direktorijumi/%1/$1) Primer: ako neko pristupi sa ivan.sajt.com/test.php on ce biti redirektovan u /user-direktorijumi/ivan/test.php (a u browseru ce mu i dalje pisati njegova prvobitna putanja). Pazi da ti svi linkovi budu u skladu sa ovim, ako zelis da sakrijes cinjenicu da nemas zasebne virt. hostove... to ti je to, ovo sam sve kucao iz glave tako da mi ne veruj na rec, mozda ima neka sitna greskica, ali to ti je prinpic.. |
Vreme je GMT +2. Trenutno vreme je 10:23. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.