我的目录结构包含目录'web'下的文件,它代表一个白标网站(html文件,图像,js等)。 我还有20个不同的“品牌”,我们称之为“web-1”,“web-2”等,每个品牌都包含特定文件,这些文件应覆盖特定品牌的“网络”文件。
Apache配置为在文档根“website-i”中查找每个虚拟站点i的文件。 为了让每个'website-i'包含'web'等内容以及品牌'web-i'的覆盖,我的构建脚本首先将所有'web'复制到'website-i'然后用源代码覆盖它来自'web-i'的文件。
这种方法存在一些问题:
以不需要复制文件的方式执行此操作是否有最佳做法? (使用Apache和Linux)
答案 0 :(得分:0)
嗯,最好的解决方案是使用非常简单的服务器端代码,但我会假设你已经拒绝了,可能是因为你没有权限在服务器上运行代码(尽管如果你的黑客配置那么你可能会这样做。
config 中的解决方案可以使其从默认根目录服务,但如果文件存在于正确的目录中,则重写url ...
RewriteCond /web-1/a_file -f
RewriteRule ^(.*)$ /web/$1
但是你必须为每个品牌的每个文件都这样做。如果文件存储在与主机名相同的目录中,但是对我来说太复杂了,你可能会更加聪明。
说真的,服务器端代码是继续这个......
奇怪的是,几周前,一位同事处于完全相同的状态,他最终将其重写为PHP。每个站点都是数据库中的一行,一个页面用于提取已更改的文本和图像的URL等,如果没有任何内容,则会回退到默认值。
说完了这一切。如上所述,使用链接可以解决问题2,可能大部分是1,我认为没有任何方法可以解决问题。