Запрос файлов из другого родительского каталога - PullRequest
1 голос
/ 20 февраля 2012

Допустим, у нас есть сервер с несколькими виртуальными хостами. Некоторые файлы и каталоги совместно используются этими виртуальными хостами, такими как 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

1 Ответ

1 голос
/ 20 февраля 2012

Поскольку ваши общие файлы находятся в расположении за пределами VirtualHost, вы должны получить к ним доступ через собственный домен / поддомен.

Таким образом, вместо этого вы должны связать http://shared.example.com/gallery.js (где shared.example.comсубдомен, который ссылается на папку с общими файлами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...