Наиболее очевидное решение, если предположить, что все разные сайты размещены на одном сервере / файловой системе, будет чем-то похожим на:
+- common files (outside web root)
|
+- httpdocs (web root)
|
+--+- website 1 specific files
| |
| +- images (etc)
|
+--+- website 2 specific files
|
+- images (etc)
На приведенной выше диаграмме все, что вам нужно сделать, это включить соответствующие файлы из общего расположения и переопределить / переопределить в целях специфики сайта, используя файлы, специфичные для сайта (хранятся ли они внутри или вне сети) -root).
Если все ваши сайты размещены на разных серверах, то это становится немного сложнее, поскольку любые распространенные файлы должны быть размещены где-то в корне сети (доступ через http). Это не идеально, хотя ничто не мешает его работе, но с точки зрения использования полосы пропускания и проблем с межсайтовой безопасностью, это может быть проблематично.
Виртуальные хосты - это нечто среднее между двумя вариантами; при условии, что все они могут получить доступ к одному и тому же корню документа, вы все равно сможете использовать включения (как , предложенный dland в других местах этих ответов).