【问题标题】:How to have cakephp Deliver content on different subdomain?如何让 cakephp 在不同的子域上提供内容?
【发布时间】:2010-08-10 04:23:19
【问题描述】:

我正在构建一个包含不同城市内容的门户。

当有人访问网站时,我希望他们选择城市,然后继续

http://city1.site.com

http://city2.site.com

这可以使用单个数据库和安装 cakephp 来完成吗?

【问题讨论】:

    标签: php cakephp dns cakephp-1.3


    【解决方案1】:

    是的,这是可能的。

    基本上,在您的 DNS 中,您必须允许 *.site.com 托管在单台计算机上。 这样,无论你键入什么子域,机器都是一样的。

    一个示例 dns 记录:

    *   A   10.0.0.1
    

    然后在虚拟主机声明中你必须放

    <VirtualHost *>
            DocumentRoot /var/www/path_to_site
            ServerName site.com
            ServerAlias www.site.com *.site.com
    </VirtualHost>
    

    这样,无论您输入什么内容,例如 something.site.com 或 city.site.com 都将被重定向到单个应用程序。

    然后你只需从 php 中解析主机(最好在 AppController 中)并将子域转换为过滤器。

    这有点抽象,但我就是这样做的。

    编辑(回复评论): 这是如何构建系统的问题。基本上如果你有:

    cite1.site.com
    

    在你的 AppController 中你可以有类似的东西:

    class AppController extends Controller {
      function beforeFilter(){
         $host = explode('.', $_SERVER["HTTP_HOST"]);
         $subdomain = $host[0];
         Configure::write('city', $subdomain);
         $this->City->getId($subdomain); //function in City model fetching City ID by city name
         ...
      }
    }
    

    所以基本上,这之后取决于你的应用程序架构是什么以及你如何处理这个城市。

    【讨论】:

    • 非常感谢...你能解释一下我是如何使用 cakephp 的吗? :D
    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2019-04-05
    相关资源
    最近更新 更多