linux - 静态网站白标的最佳实践?

标签 linux apache white-labelling

我有一个目录结构,其中的文件位于目录“web”下,它代表一个白标签网站(html 文件、图像、js 等)。 我还有大约二十个不同的“品牌”,我们称它们为“web-1”、“web-2”等。每个品牌都包含特定文件,这些文件应该覆盖特定品牌的“web”中的文件。

Apache 配置为在文档根“website-i”中查找每个虚拟站点 i 的文件。 为了让每个“website-i”包含“web”等内容并覆盖品牌“web-i”,我的构建脚本首先将所有“web”复制到“website-i”,然后使用“web-i”中的源文件覆盖它。

这种方法有几个问题:

  1. 复制文件需要时间。
  2. 需要大量磁盘空间
  3. 添加新品牌需要添加到脚本中。

是否有不需要复制文件的最佳实践? (使用 Apache 和 Linux)

最佳答案

好吧,最好的解决方案是使用非常简单的服务器端代码,但我假设您已经拒绝了,也许是因为您没有权限在服务器上运行代码(尽管如果您破解了配置,那么您可能会这么做)。

配置中的解决方案可能是使其从默认根目录提供服务,但如果文件存在于正确的目录中,则重写 url ...

RewriteCond  /web-1/a_file  -f
RewriteRule  ^(.*)$  /web/$1  

但是您必须对每个品牌的每个文件执行此操作。如果文件存储在与主机名相同的目录中,您可能会更聪明,但这对我来说太复杂了。

说真的,服务器端代码是解决这个问题的方法......

奇怪的是,几周前,一位同事遇到了几乎完全相同的情况,他最终将其重写为 PHP。每个站点都是数据库中的一行,一个页面,用于提取更改后的文本和图像 URL 等,如果其中没有任何内容,则返回到默认值。

话虽如此。正如您上面所说,使用链接解决了问题 2,可能解决了问题 1 的大部分问题,而且我认为没有办法解决问题 3。

关于linux - 静态网站白标的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395443/

相关文章:

linux - 为什么信号量被视为IPC?

linux - my.cnf 中不存在 max_connection

iOS - 创建启用授权的 "white label"iOS 应用涉及什么?

azure - 如何使用Azure默认域(xxx.azurewebsites.net)白标SendGrid电子邮件链接?

linux - 如何让system()函数畅通无阻?

linux - 使用 awk 和 sed 消除不需要的输出

javascript - HTTP 文件下载 : Monitoring Download Progress

apache - 配置tomcat apache将子目录作为第一页执行

ios - 白标应用程序和 App Store 审查指南

linux - 创建 .tar.gz 文件时的目录包括主文件夹和公共(public) html 文件夹