从一个域管理多个网站

时间:2009-03-11 17:34:51

标签: php .htaccess

我一直在寻找一段时间来找到完成以下系统的解决方案。

我想构建一个PHP系统,比如说domainA。在这个域名上,我将允许管理员“创建”一个新网站。该网站仅包含文本片段,这些文本都存储在数据库中。这个,我知道怎么做。

但是,现在我想让访问域名B的访问者无形地重定向到例如domainA.com/gateway.php?refdomain=domainB&page=xxx或类似内容。 我有一个模糊的想法,这应该由.htaccess完成,但我真的不知道如何以最简单的方式做到这一点。例如,如果在domainB上有一些POST或GET请求,这应该继续工作。此外,与http://www.domainB.com/test.gif相关联的图片也应无形地加载到www.domainA.com。

我也知道有一些CMS系统(例如drupal)允许这个功能,所以有可能,我只是不知道如何。

感谢您提出任何可能指向正确方向的建议, 亲切的问候, 数字

5 个答案:

答案 0 :(得分:2)

你是否在同一台机器上托管这两个?如果是这样,像Apache中的VirtualHosts这样的东西可以为你解决这个问题。

mod_aliasmod_rewrite也可能对你有用。

答案 1 :(得分:0)

如果您使用像Drupal这样的CMS,您应该能够使用Portal Alias分配这些。通过使用别名,您将能够指定不同的域以指向创建的不同“站点”。

答案 2 :(得分:0)

基本上,您需要将所有域指向同一目录(可能在vhosts中使用通配符),然后设置urlrewrite;查看this question示例,它可以是.htaccess文件或Apache配置。

所有进入的请求都会转到同一个gateway.php,您可以使用$_SERVER['REDIRECT_QUERY_STRING']$_SERVER['REQUEST_URI']和$ _SERVER['SERVER_NAME']来提取当前域和请求。见$_SERVER。然后,您就可以在gateway.php中发送正确的文件。

答案 3 :(得分:0)

好的,这是一个非常简单的例子:

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

然后,您可以使用parse_url在网关脚本中解析“realpath”并执行相应的操作。

如果你想

,你的重写规则会变得更复杂,以便为图像分别设置等

答案 4 :(得分:-1)

您可以使用重定向标头..