|
Regular expression i htaccess regex, PCRE, POSIX, upotreba Apache .htaccess , mod_rewrite |
![]() |
|
Alati teme | Način prikaza |
|
![]() |
#1 |
član
Certified
Datum učlanjenja: 23.02.2009
Poruke: 55
Hvala: 0
11 "Hvala" u 7 poruka
![]() |
![]() Resenje vec postoji. Na linku koji sam prethodno postovao mozete naci vise informacija. Poslednja verzija za PHP je prikacena.
|
![]() |
![]() |
![]() |
#2 |
Dejan Ranisavljevic
Certified
|
![]() Ja sam uspeo da odradim ovo na nivou web server-a jedan virtual host sa rewrite-om na osnovu toga da li postoji fajl u document_root/domains/imedomena
Posto je vec receno da u bazi drzite imena domena za koje ce raditi aplikacija, prilikom dodavanja, brisanja domena potrebno je i dodati i obrisati fajl u domains/ime_domena. Tipa ako zelimo da nam aplikacija radi za example.com, samo cu touch-ovati taj fajl: Kôd:
touch domains/example.com touch domains/www.example.com touch domains/test.example.com Kôd:
set $postoji 0; # ako fajl postoji vrati ga odmah i prekini konekciju if (-f $request_filename) { break; } # ukoliko postoji trazeni domen if (-f $document_root/domains/$host) { set $postoji 1; } # ukoliko postoji trazeni domen sa www pod domenom if (-f $document_root/domains/www.$host) { set $postoji "${postoji}2"; } # ukoliko ne postoji domen redirektuj na default host if ($postoji = 0){ rewrite ^(.+)$ http://www.example.com$1 last; break; } # rewrite-uj trazeni domen sa www pod domenom if ($postoji = 12){ rewrite ^(.+)$ http://www.$host$1 last; break; } A sve to zajedno za catchall virtual host bi izgledalo ovako: Kôd:
server { listen 80 default; server_name _; root /Users/dejanr/Sites/dpt; server_name_in_redirect off; set $postoji 0; # ako fajl postoji vrati ga odmah i prekini konekciju if (-f $request_filename) { break; } # ukoliko postoji trazeni domen if (-f $document_root/domains/$host) { set $postoji 1; } # ukoliko postoji trazeni domen sa www pod domenom if (-f $document_root/domains/www.$host) { set $postoji "${postoji}2"; } # ukoliko ne postoji domen setuj default host if ($postoji = 0){ rewrite ^(.+)$ http://www.example.com$1 last; break; } # rewrite-uj trazeni domen sa www pod domenom if ($postoji = 12){ rewrite ^(.+)$ http://www.$host$1 last; break; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/public$fastcgi_script_name; include /usr/local/nginx/conf/fastcgi_params; } } Poslednja izmena od dejanr : 26. 03. 2010. u 13:33. |
![]() |
![]() |
![]() |
#3 |
Goran Pilipović
Sir Write-a-Lot
|
![]() Tnx, ali kod nas svi domeni pucaju na isti docroot. Mada nekako mi je nesigurno da se jedna stvar oslanja na drugu nezavisnu stvar računajući da će sve da bude kako je "logično".
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
![]() |
![]() |
![]() |
#4 |
Dejan Ranisavljevic
Certified
|
![]() pa da radi sve za isti document root
|
![]() |
![]() |
![]() |
#5 |
Dejan Ranisavljevic
Certified
|
![]() Document Root je u:
Kôd:
root /Users/dejanr/Sites/dpt; Kôd:
# ako fajl postoji vrati ga odmah i prekini konekciju if (-f $request_filename) { break; } ![]() Poslednja izmena od dejanr : 26. 03. 2010. u 14:29. |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
$_SERVER['REMOTE_ADDR'] prazan ? | Ivan | PHP | 22 | 16. 03. 2010. 19:23 |
Koristiti $_SERVER['REQUEST_TIME'] vs time()? | bluesman | PHP | 29 | 07. 11. 2009. 23:40 |
Ajax & cross-subdomain problemi | bNasty | (X)HTML, JavaScript, DHTML, XML, CSS | 9 | 17. 01. 2007. 01:15 |
Prazan $_SERVER['HTTP_REFERER'] | bluesman | PHP | 26 | 11. 11. 2005. 13:43 |
Virtuelni subdomain preko .htaccess | bluesman | Regular expression i htaccess | 6 | 17. 06. 2005. 11:05 |