Php 为来宾跟踪子域的最佳方式

Php 为来宾跟踪子域的最佳方式,php,subdomain,Php,Subdomain,我试图为用户创建子域,因为每个子域都有自己的“网站”。(user.domain.com)这都是“虚拟的”,因为所有文件、控制器、文件夹等都是相同的。一切都是动态创建的。我想我已经搞定了所有的DNS、mod_重写、htaccess等等,但我还有一个问题 问题是当一个客人(非用户)访问一个用户的网站(user.domain.com)时。举例说明: Guest使用子域(顺便说一句,我使用php)键入url,controller根据子域动态加载用户网站 来宾单击页面上的链接并从服务器获取新页面。问题是新

我试图为用户创建子域,因为每个子域都有自己的“网站”。(user.domain.com)这都是“虚拟的”,因为所有文件、控制器、文件夹等都是相同的。一切都是动态创建的。我想我已经搞定了所有的DNS、mod_重写、htaccess等等,但我还有一个问题

问题是当一个客人(非用户)访问一个用户的网站(user.domain.com)时。举例说明:

  • Guest使用子域(顺便说一句,我使用php)键入url,controller根据子域动态加载用户网站
  • 来宾单击页面上的链接并从服务器获取新页面。问题是新页面不再具有子域,因为所有链接都是相同的。只有内容是不同的,并且是动态加载的
  • 所以问题是,我如何跟踪来宾在哪个子域上?由于客户端是来宾,而不是登录用户,因此我无法查看登录用户的信息

    我只是想知道最好的实现方式是什么。我是否应该在会话中保留一些变量,并在每页上不断检查这些变量?我是否应该在每个链接中传递一个POST/GET变量,然后让控制器读取该变量

     $_SERVER['SERVER_NAME']
    

    这将为您提供域,只需将其保留在会话中。

    在会话中保存他的子域。如果他更改了子域,请在会话中重新保存。你不能预先挂起与来宾访问的第一页的子域的所有链接吗?你可以在一个会话中保存这个吗?在你的第二点中,你是说新页面不再有子域了。应该有吗?或者,你至少应该有一些东西来保存它,或者在你的数据库中,你会知道哪些类型的内容是哪个子域的,然后将其发送到你的视图并跟踪它。你可以使用数据库中用户特定的秘密盐md5域,然后将其存储在会话中,这样你就不必担心其他问题了人们改变会话值和获取另一个域的内容等。也许你不需要太多的保密,但只要想一想,你就可以同时做到这两件事,在会话中保存域并预先挂起所有链接,这样用户总是从会话中进入域,只要在每次页面加载时使用当前域不断更新会话,它就始终是最新的。