2009-03-11 14 views
5

Szukałem już od jakiegoś czasu, aby znaleźć rozwiązanie, które pozwoli osiągnąć następujący system.Zarządzaj wieloma witrynami z jednej domeny

Chciałbym zbudować system PHP na, powiedzmy, domainA. W tej domenie A pozwolę administratorowi "stworzyć" nową stronę. Ta strona zawiera tylko fragmenty tekstu, które są przechowywane w bazie danych. Wiem, jak to zrobić.

Chciałbym teraz umożliwić użytkownikom, którzy surfują w domenieB, niewidocznego przekierowania na przykład domainA.com/gateway.php?refdomain=domainB & page = xxx lub coś podobnego. Mam niewyraźny pomysł, że powinno to być zrobione przez .htaccess, ale tak naprawdę nie wiem, jak mogę to zrobić w najprostszy sposób. Jeśli na przykład są jakieś żądania POST lub GET w domenie B, to powinno działać. Również obrazy powiązane z http://www.domainB.com/test.gif powinny być niewidoczne załadowane ze strony www.domena.com.

Wiem też, że istnieje kilka systemów CMS (np. Drupal), które pozwalają na tę funkcję, więc jest to możliwe, po prostu nie wiem jak.

Dziękuję za wszelkie rady, który mógłby wskazywać mnie we właściwym kierunku, poważaniem Cyfry

Odpowiedz

0

Zasadniczo należy wskazać wszystkie domeny w tym samym katalogu (może za pomocą symbolu wieloznacznego w swoim vhosts), a następnie skonfigurować urlrewrite; spójrz na przykład na this question i może to być plik .htaccess lub konfiguracja Apache.

Wszystkie otrzymane żądania zostaną przesłane do tego samego gateway.php, a na przykład można wyodrębnić bieżącą domenę i żądania za pomocą $_SERVER['REDIRECT_QUERY_STRING'], $_SERVER['REQUEST_URI'] i $ _SERVER['SERVER_NAME']. Zobacz $_SERVER. Będziesz wtedy mógł w swoim gateway.php wysłać odpowiednie pliki.

+0

Nie zmieni to adresu URL w pasku adresu przeglądarki, jest niewidoczne dla użytkownika. – lpfavreau

0

Jeśli używasz CMS Drupal jak, zalecana móc je przypisać za pomocą aliasu portalu. Korzystając z aliasu, będziesz mógł przypisywać różne domeny, aby wskazywały na różne "witryny", które zostały utworzone.

+0

myślę, że stara się unikać CMS. –

2

Czy hostujesz oba te urządzenia na tym samym komputerze? Jeśli tak, to coś takiego jak VirtualHosts w Apache może rozwiązać to za Ciebie.

mod_alias i mod_rewrite może być również przydatny.

+0

Apache VirtualHost ma coś takiego jak ProxyPass i ProxyPAssReverse, które mogą być używane do definiowania wielu VirtualHost z Apache działającym jak Router. Jestem pewien, że działa on dla domen statycznych, nie jest do końca pewien, czy zadziała w "tworzeniu" domen takich jak wymienione w pytaniu. – Sathish

+0

Cóż, nie możesz "stworzyć" domeny w każdym razie ... musisz ją zarejestrować. W ramach rejestracji wystarczy skierować go do tego samego adresu IP, co domena A. VirtualHosts zajmie się resztą, jeśli skonfigurujesz ją poprawnie. – rmeador

+0

Dziękuję za tę sugestię, jednak myślę, że jeśli używam Virtualhosts, będę musiał skopiować pliki na każde konto ftp tej witryny. Moim celem jest uruchomienie kilku stron (domen) i tylko utrzymanie jednego konta z plikami. Wszystkie dane są przechowywane w bazie danych, a nie w plikach. – Digits

0

OK, tutaj jest bardzo prosty przykład:

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} !^www\.domainA\.com 
RewriteRule (.*) http://www.domainA.com/gateway.php?realpath=$1 [L,QSA] 

Następnie można analizować „realpath” w skrypcie bramy przy użyciu parse_url i podjąć odpowiednie działania.

Można dostać więcej kompleks z reguł przepisywania mieć osobne kodeków do zdjęć itp gdybyś chciał

+0

Kiedy używasz tego typu reguł przepisywania, czy faktycznie zmienia adres w przeglądarce użytkownika? Czy wykonuje przekierowanie 301? Myślę, że to byłoby niepożądane. Mam nadzieję, że obsłuży to wszystko wewnętrznie wewnątrz serwera. Proszę doradzić, jestem dość ciekawy. –

+0

Myślę, że to może działać! Użyłem czegoś podobnego, ale nie zdawałem sobie sprawy, że można go używać w różnych domenach. Z pewnością spróbuję tego. Dziękuję Ci! – Digits

+0

@Josh - nie, nie wykonuje przekierowania 301 (cóż, może, gdybyś chciał, ale jak napisano, nie). To ściśle wewnętrzne przekierowanie. Przeglądarka nigdy nie widzi nowego adresu URL –

Powiązane problemy