Управление несколькими сайтами из одного домена - PullRequest
5 голосов
/ 11 марта 2009

Я некоторое время искал решение, чтобы создать следующую систему.

Я хотел бы построить систему PHP, скажем, на домене A. В этом домене я разрешу администратору «создать» новый сайт. Этот сайт содержит только фрагменты текста, которые все хранятся в базе данных. Это я умею делать.

Однако теперь я хотел бы сделать возможным, чтобы посетители, которые заходят на домен B, были незаметно перенаправлены, например, на domainA.com/gateway.php?refdomain=domainB&page=xxx или что-то подобное. У меня есть смутное представление, что это должно быть сделано с помощью .htaccess, но я не знаю, как мне сделать это наиболее простым способом. Если, например, есть несколько запросов POST или GET на domainB, это должно продолжать работать. Также изображения, связанные с http://www.domainB.com/test.gif, должны быть невидимо загружены с сайта www.domainA.com.

Я также знаю, что есть некоторые системы CMS (например, drupal), которые позволяют эту функцию, поэтому это возможно, я просто не знаю, как.

Спасибо за любой совет, который может указать мне правильное направление, С уважением, Цифры

Ответы [ 5 ]

2 голосов
/ 11 марта 2009

Вы размещаете их на одной машине? Если это так, то что-то вроде VirtualHosts в Apache может решить эту проблему для вас.

mod_alias и mod_rewrite также могут вам пригодиться.

0 голосов
/ 11 марта 2009

ОК, вот очень простой пример:

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

Затем вы можете проанализировать "realpath" в вашем скрипте шлюза, используя parse_url, и предпринять соответствующие действия.

Вы можете усложнить правила переписывания, чтобы иметь отдельные правила для изображений и т. Д., Если хотите

0 голосов
/ 11 марта 2009

По сути, вам нужно указать все ваши домены в одном каталоге (возможно, с помощью подстановочного знака в вашем vhosts ), а затем настроить urlrewrite ; посмотрите на этот вопрос для примера, и он может быть в файле .htaccess или в конфигурации Apache.

Все поступающие запросы будут направлены в один и тот же gateway.php, и вы можете извлечь текущий домен и запросы, используя, например, $_SERVER['REDIRECT_QUERY_STRING'], $_SERVER['REQUEST_URI'] и $ _SERVER['SERVER_NAME']. См. $_SERVER. После этого вы сможете в своем gateway.php отправлять правильные файлы.

0 голосов
/ 11 марта 2009

Если вы используете CMS, такую ​​как Drupal, вы сможете назначить их, используя псевдоним портала. Используя псевдоним, вы сможете назначать разные домены, чтобы они указывали на разные «сайты», которые создаются.

0 голосов
/ 11 марта 2009

Вы можете использовать заголовок перенаправления ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...