0

我有一个目录结构,其中包含目录“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)

4

1 回答 1

0

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

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

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

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

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

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

说了这么多。正如您上面所说,使用链接可以解决问题 2,可能大部分是 1,但我认为没有办法解决 3。

于 2012-02-22T23:36:20.773 回答