域屏蔽/指向Web应用程序的目录?

时间:2009-08-08 20:58:10

标签: php url domain-mask

我构建了一个LAMP Web应用程序,让用户可以创建自己的个人资料页面,以便上传他们的简历和作品集。一个人的个人资料的网址将类似于

http://jobbank.com/user/johndoe

John Doe注册了域名http://johndoefreelancer.com,他希望它指向http://jobbank.com/user/johndoe。任何访问johndoefreelancer.com的人都不应该意识到它是由http://jobbank.com/user/johndoe驱动的。这意味着浏览器URL应该持久显示地址,例如:

http://johndoefreelancer.com/aboutme(真的指向jobbank.com/user/johndoe/aboutme) http://johndoefreelancer.com/portfolio(确实指向jobbank.com/user/johndoe/portfolio)

此外,点击任何链接[a href =“”]应该让你在johndoefreelancer.com,而不是发送到jobbank.com。

我的问题是,实现这一目标的最佳方法是什么?

我在考虑: 1)向用户提供有关如何使用屏蔽进行域转发的说明

2)指示用户在其用户配置文件信息中填写$ homeUrl字段,该信息保存到数据库

3)在我的PHP代码中,如果$ homeUrl存在,则将所有[a href =“$ _ SERVER ['HTTP_HOST']”]替换为[a href =“$ homeUrl”]

这是正确的做法吗?还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

另一种方法是告诉用户将其域指向您的IP并将其设置为基于名称的虚拟主机。好处是:

  1. 用户更容易设置然后屏蔽前进(后者可能甚至不可能取决于注册商)
  2. 您不必在PHP代码中处理URL重写。
  3. 如果您不必为您的网址使用/user/johndoe前缀(您实际上并不需要这样做,因为您可以在代码中进行域查找以确定用户ID),这将更容易设置,但也可以使用前缀 - 只是mod_rewrite设置必须在这种情况下更多参与(你需要为每个域做一次)。

答案 1 :(得分:1)

我能想到的唯一实用方法是:

  1. 在用户个人资料中添加字段 对于域名

  2. 告诉用户将DNS主机条目指向您的IP(或您的主域名)

  3. 创建一个虚拟主机,这是您可能拥有的第一个虚拟主机。 (*)

  4. 在此虚拟主机中创建一个index.php脚本,该脚本在用户配置文件中查找请求的域名并显示该页面。

  5. 您可能需要为在页面上打印的网址实施切换。例如。如果你来到特殊索引页面使用/作为“base href”,在所有其他情况下/ user / username是“base href”

    *)如果apache收到一个它不知道的名字的请求(因为它没有vhost的ServerName |别名,它使用第一个Vhost作为后备。