Допустим, у нас есть сервер с несколькими виртуальными хостами. Некоторые файлы и каталоги совместно используются этими виртуальными хостами, такими как JS-, HTML- и некоторые PHP-файлы. Я хочу предотвратить создание новой копии этих файлов каждый раз, когда мы добавляем новый виртуальный хост, так как это затруднит обновление файлов. Поэтому я хочу поместить эти общие файлы в другой родительский каталог, т.е. / var / www / shared_files /.
Поэтому, когда запрашивается один из общих файлов, т.е. http://example.com/scripts/gallery.js, я хочу получить файл, расположенный в /var/www/shared_files/gallery.js вместо /var/www/xxx/gallery.js.
Первое решение, которое я нашел для этой проблемы, было решением htaccess:
RewriteRule ^gallery.js ../shared_files/gallery.js
, который работает только до тех пор, пока все файлы запрашиваются через IP-адрес сервера, т.е. http://11.11.0.111/xxx/gallery.js.
Второе решение - это PHP-решение:
if(* is 404 *)
{
if(file_exists("/var/www/shared_files/* the requested file name *"))
{
if(strpos(* the requested file name *, ".js") !== false)
header("Content-type: text/javascript");
require_once("/var/www/shared_files/* the requested file name *");
die();
}
}
Это не похоже на хорошее решение в долгосрочной перспективе, так кто-нибудь знает лучшее решение для этого?
- Отредактировано после комментария TerryE