我有一个网站可以检查用户代理并在需要时加载移动版本。它加载 www.mydomain.com/mobile。
但是,就像这个网站“stackoverflow”一样,没有子域:它只是桌面版和移动版的“stackoverflow.com”。这是怎么做到的?
谢谢
www 不是子域,它是主机名。这里发生的只是 DNS 的运行。
让我们查找www.stackoverflow.com
www.stackoverflow.com. 3600 IN CNAME stackoverflow.com
这说:“www.stackoverflow.com
是 的别名stackoverflow.com
,查找stackoverflow.com
以知道 IP 地址”,所以现在我们查找 stackoverflow.com
stackoverflow.com. 3600 IN A 64.34.119.12
它就是IP地址。这是故事的第 1 部分。
关于 SO 使用相同 URL 提供移动和桌面版本的技术,因为支持 SO 的 StackExchange 软件不是开源的,我只能引用 Jeff Atwood 的话,来自关于移动版本的博客文章的评论
不幸的是,这种方法根本不适用于像我们这样实际上向移动客户端提供不同 HTML 的网站。
这使我推测所需的渲染(移动或桌面)是您会话的一部分,并且页面控制器只是将另一组模板应用于存储在数据库中的文章内容。