【发布时间】:2014-01-03 17:23:51
【问题描述】:
我正在尝试为用户创建子域,因为每个用户都有自己的“网站”。 (user.domain.com) 这都是“虚拟的”,因为所有文件、控制器、文件夹等都是相同的。一切都是动态创建的。我想我已经解决了所有的 DNS、mod_rewrite、htaccess 等问题,但我还有另一个问题。
问题在于访客(非用户)访问用户的网站(user.domain.com)时。一个例子来说明这一点:
- 访客类型 url 与子域(顺便说一句,我使用的是 php)和控制器根据子域动态加载用户网站。
- 访客单击页面上的链接并从服务器获取新页面。问题是新页面不再具有子域,因为所有链接都相同。只有内容不同并且是动态加载的。
所以问题是,我如何跟踪来宾所在的子域?由于客户是访客而不是登录用户,因此我无法查看登录用户的信息。
我只是对最佳实施方式的想法感兴趣。我应该在会话中保留一些变量并在每一页上继续检查吗?我应该为每个链接传递一个 POST/GET 变量,然后让控制器读取它吗?
【问题讨论】:
-
在会话中保存他的子域。如果他更改了子域,请在会话中重新保存。
-
您不能在访客访问的第一页的子域中添加所有链接吗?你可以在一个会话中举行这个吗?
-
在您的第二点中,您说新页面不再有子域。应该有吗?或者您至少应该有一些东西可以保留,或者在您的数据库中您会知道哪种类型的内容适用于哪个子域,然后将其发送到您的视图以跟踪它。
-
您可以使用您在数据库中的用户特定秘密盐来 md5 域,然后将其存储在会话中,这样您就不必担心其他人更改会话值并获取另一个域的内容等。也许你不需要那么多保密,只需要一个想法
-
当然你两者都做,将域保存在会话中并预先挂起所有链接,这样用户总是从会话中转到域,只需在每个域上都使用当前域更新会话页面加载,因此它始终是最新的。