использование mod-rewrite для перенаправления запросов на jquery.js в кеш GoogleAPI - PullRequest
0 голосов
/ 18 мая 2010

На нашем сервере Linux с Apache 2.x, Plesk 8.x размещено несколько сайтов электронной коммерции. Чтобы воспользоваться преимуществами кэширования в браузере, мы хотели бы использовать предоставленную Google копию jquery.js.

Следовательно, в файле vhost.conf каждого мы можем использовать следующий RewriteRule

RewriteCond %{REQUEST_FILENAME} jquery.min.js [nc]
RewriteRule . http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js [L]

А в vhost_ssl.conf

* +1007 *

Хорошо, теперь эти правила хорошо работают в отдельных файлах vhost.conf каждого домена. Тем не менее, мы размещаем более 200 доменов, я бы хотел, чтобы они работали, но не могу заставить их работать глобально в файле httpd.conf.

Вызовы следующие:

  1. Заставьте rewriterule работать в httpd.conf
  2. Определить, включен ли протокол HTTPS, и если он включен и является защищенной страницей, переписать на ...
  3. Каждый отдельный домен будет по-прежнему иметь свои собственные правила перезаписи модов. Какие правила имеют приоритет - глобальные или доменные? Они объединяются? Это нормально, если у меня есть директива "RewriteEngine On" в глобальном httpd.conf, а затем снова в vhost.conf?

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

1 Ответ

1 голос
/ 20 мая 2010

Я согласен с Гамбо, но вот как вы можете это сделать:

1 .. Заставьте rewriterule работать в httpd.conf

Как четко указано в руководстве :

По умолчанию параметры конфигурации mod_rewrite из контекста основного сервера не наследуются виртуальными хостами. Чтобы настройки основного сервера применялись к виртуальным хостам, вы должны поместить следующие директивы в каждый раздел:

RewriteEngine On
RewriteOptions Inherit

2 .. Определить, включен ли HTTPS, и если он включен и является защищенной страницей, переписать на ...

Это можно сделать, посмотрев на% {HTTP_HOST}:

RewriteCond %{HTTPS} !=on
RewriteRule /jquery\.min\.js$ https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js [NC,R=permanent]

RewriteCond %{HTTPS} =on
RewriteRule /jquery\.min\.js$ http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js [NC,R=permanent]

Вам также следует избегать точек и ненужная вам RewriteCond; Вы можете сделать это в RewriteRule.

3 .. У каждого отдельного домена будут свои собственные правила перезаписи модов. Какие правила имеют приоритет - глобальные или доменные? Они объединяются? Это нормально, если у меня есть директива "RewriteEngine On" в глобальном httpd.conf, а затем снова в vhost.conf?

Он будет добавлен к конфигурации mod_rewrite виртуального хоста.

...