【问题标题】:One PHP app that looks different when access from different domains从不同域访问时看起来不同的一个 PHP 应用程序
【发布时间】:2010-11-06 19:09:50
【问题描述】:

我在一家小型网页设计公司工作,我们正在寻求实施自制的 CMS 来帮助管理我们的网站。

目前,我们将 CMS 安装在每个客户的唯一用户下的单独文件夹中,然后将他们的域指向该文件夹。

这方面的困难部分是向后移植重要的更改,例如异步新的谷歌分析代码,或者我们改进的防止垃圾评论的方法。

关于更好方法的几个问题:

1:是否建议为我们制作的每个网站使用相同的后端代码?

2:假设是,最好的方法是什么?我会检查 $_SERVER['SERVER_NAME'] 以确定要使用的模板、数据库连接等。

任何人以前有这样做的经验吗?

【问题讨论】:

    标签: php url content-management-system


    【解决方案1】:

    如果它们都托管在同一个物理服务器上,您需要$_SERVER['HTTP_HOST'],这是用户请求的域。 SERVER_NAME 是服务器本身的物理名称(由 Apache 的 ServerName 指令设置)。

    如果它们彼此之间没有太大差异,那么在同一个代码库中托管多个站点是没有问题的。如果这只是一些品牌和改变一些文本/图形的问题,没什么大不了的。但是,如果您在做完全不同的网站,那么您的代码将变成“如果服务器名称是 X,则执行此操作,否则执行其他操作”的无法维护的混乱。

    【讨论】:

    • 哈,当然是http主机,刚刚写了一大堆处理服务器名的代码,脑子肯定还在!
    【解决方案2】:

    我已经尝试过这种方式,让一个主要的 CMS 推出多个网站,并在它上线之前离开它。我们遇到的问题是更新和更改。任何类型的定制都在窗外,无需大量额外工作。想要添加表单域?准备好心痛。最后,我们完成了您现在所拥有的,多次安装,但使用了一些主要脚本,它们都共享其中调用脚本通过了哪个站点正在请求什么,例如表单邮件和安全检查。

    对于我们知道在所有文件或多个页面上都相同的大规模更新,我们要么编写一个在文件中搜索和替换的更新脚本,要么在 BBedit 中执行。

    对于像谷歌分析这样的东西,我感觉无论如何你都不得不手动进行这些更改,因为它们都有唯一的 ID。

    【讨论】:

      猜你喜欢
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多