我构建了一个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”]
这是正确的做法吗?还有更好的方法吗?
答案 0 :(得分:1)
另一种方法是告诉用户将其域指向您的IP并将其设置为基于名称的虚拟主机。好处是:
如果您不必为您的网址使用/user/johndoe
前缀(您实际上并不需要这样做,因为您可以在代码中进行域查找以确定用户ID),这将更容易设置,但也可以使用前缀 - 只是mod_rewrite设置必须在这种情况下更多参与(你需要为每个域做一次)。
答案 1 :(得分:1)
我能想到的唯一实用方法是:
在用户个人资料中添加字段 对于域名
告诉用户将DNS主机条目指向您的IP(或您的主域名)
创建一个虚拟主机,这是您可能拥有的第一个虚拟主机。 (*)
在此虚拟主机中创建一个index.php脚本,该脚本在用户配置文件中查找请求的域名并显示该页面。
您可能需要为在页面上打印的网址实施切换。例如。如果你来到特殊索引页面使用/作为“base href”,在所有其他情况下/ user / username是“base href”
*)如果apache收到一个它不知道的名字的请求(因为它没有vhost的ServerName |别名,它使用第一个Vhost作为后备。