我有一个网站/应用程序,其中每个用户都有一个个人资料,即:
mydomain.com/user1
mydomain.com/user2
mydomain.com/user3
等
我该如何允许用户使用自己的域名以重写而不是重定向的方式访问他们的个人资料。因此,当他们访问
user1theirdomain.com 时,他们会在 mydomain.com/user1 上看到他们的个人资料,但我不想重定向,我希望他们的域名显示在地址栏中。
我想用户需要调整域名 DNS 以指向我的服务器,正确的程序是什么,我需要做什么?
另外,我不想手动调整,我希望当他们将他们的域指向我的服务器时,我的应用程序将检查域名,在我的数据库中查找域,然后提供正确的内容。
有任何想法吗?
答案1
为什么不直接使用虚拟主机?只要正确设置 DNS,以便 theirdomain.com(或更具体地说是 user1.theirdomain.com)登陆您的服务器,您就可以将请求指向文件系统上所需的任何位置。
答案2
在 PHP 方面,您只需要映射$user = user_domain($_SERVER["HTTP_HOST"])
。但是,如果您的用户只是“指向”您的服务器,您的网络服务器需要接受随机虚拟主机。因此,如果您使用的是共享主机,则无法进行设置。
为什么用户子域名不够用?那只需要一个RewriteCond %{HTTP_HOST} (.+)
和RewriteRule .+ user.php?domain=$1
。同样,为您的用户设置它更容易(尽管是重定向)。
答案3
最简单的方法是使用 0 像素框架。基本上,设置一个人们指向其域名的 IP 地址,例如 1.2.3.4。在 1.2.3.4 上,设置如下框架集:
<html>
<frameset rows="0,100%">
<frame noresize frameborder=0 marginheight=1 scrolling=no src="/blank_page.html" />
<frame noresize frameborder=0 marginheight=1 scrolling=no src="http://mydomain.com/userfoo" />
</frameset>
</html>
这可能会使你的一些 javascript 更加棘手......