Na klijentovom Live serveru sam konfigurisao novi sajt u okviru /var/www/hosts/www.site.com.war foldera. Live okruženje koristi konfiguraciju Apache-JBoss servera, gdje je Apache front-end server.
Standardna procedura pri kreiranju novog sajta na Live-u, na ovom projektu, je da se sajt konfiguriše tako da bude dostupan preko određene šifrom zaštićene interne adrese (npr. live.site.com, pozvani korisnici je zajedno sa IP adresom Live servera dodaju u svoj hosts fajl) i tako sve dok ne bude spreman za upotrebu, tj. dok klijent ne obezbjedi domen. Uspješno sam konfigurisao internu adresu (na dalje live.site.com).
Medutim, moj problem je u tome što klijent već sada ima kupljen javni domen (na dalje www.site.com), što u prevodu znaci da je Apache odgovoran za obradu i www.site.com i live.site.com URL zahtjeva!
Moj zadatak je sledeci:
1. Ako "interni" korisnik zatraži live.site.com stranicu, Apache mu mora omoguciti pristup sajtu konfigurisanom u folderu /var/www/hosts/www.site.com.war
2. Ako bilo koji korisnik zatraži www.site.com stranicu, Apache ga mora redirektovati na neki sasvim drugi sajt, npr. www.othersite.com/page.jsp
Ovo je konfiguracija sa kojom sam pokušao da riješim ovaj problem, međutim bez uspjeha pošto u ovom slučaju oba zahtjeva vode ka sajtu konfigurisanom u okviru /var/www/hosts/www.site.com.war foldera, s tim što sajt zahtjevan preko www.site.com adrese ne uspjeva da učita css dokumente jer ih "traži" na www.othersite.com/ adresi:
Code:
<VirtualHost *:80>
ServerName www.site.com
DocumentRoot /var/www/hosts/www.site.com.war/
RewriteEngine on
RewriteCond %{HTTP_HOST} www.site.com
RewriteCond %{HTTP_REFERER} http://www.site.com/
RewriteRule ^/(.*) http://www.othersite.com/page.jsp [R=301]
# Remove this password protection after go-live
<Directory /var/www/hosts/www.site.com.war/ >
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /etc/httpd/conf/site.htpasswd
require valid-user
</Directory>
</VirtualHost>
# For internal company use
<VirtualHost *:80>
ServerName live.site.com
ProxyPass / http://www.site.com/
ProxyPassReverse / http://www.site.com/
</VirtualHost>
<VirtualHost *:80>
ServerName www.site.com
DocumentRoot /var/www/hosts/www.site.com.war/
RewriteEngine on
RewriteCond %{HTTP_HOST} www.site.com
RewriteCond %{HTTP_REFERER} http://www.site.com/
RewriteRule ^/(.*) http://www.othersite.com/page.jsp [R=301]
# Remove this password protection after go-live
<Directory /var/www/hosts/www.site.com.war/ >
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /etc/httpd/conf/site.htpasswd
require valid-user
</Directory>
</VirtualHost>
# For internal company use
<VirtualHost *:80>
ServerName live.site.com
ProxyPass / http://www.site.com/
ProxyPassReverse / http://www.site.com/
</VirtualHost>
Ako zakomentarišem RewriterEngine pravila ništa se se primjeni sem što stranica na www.site.com zahtjev uspješno učita css-ove.
Moja pitanja su:
1. Da li je moguce konfigurisati Apache na nacin opisan iznad?
2. Takođe me interesuje da li preko nekog od RewriteCond-ova mogu saznati da je zahtjev redirektovan sa nekog drugog VirtualHost-a?
Unaprijed zahvalan, Marko.
PS. Pokušao sam naći odgovor pretražujuci forum, ali bez uspjeha.
PS2. Sličan post sam postavio i na StackOverflow: http://stackoverflow.com/quest...he-site-redirect-configuration
[Ovu poruku je menjao Rolo Din dana 26.11.2012. u 15:41 GMT+1]
[Ovu poruku je menjao Rolo Din dana 26.11.2012. u 15:44 GMT+1]