0

Apache 2.x を搭載した Linux サーバー、Plesk 8.x は、多数の e コマース Web サイトをホストしています。ブラウザのキャッシュを利用するには、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 で

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

これらのルールは、各ドメインの個々の vhost.conf ファイルで正常に機能します。ただし、200 を超えるドメインをホストしています。それらを機能させたいのですが、httpd.conf ファイルでグローバルに機能させることができないようです。

課題は次のとおりです。

  1. httpd.conf で機能するように rewriterule を取得します。
  2. HTTPSがオンになっているかどうかを検出し、オンになっていて安全なページである場合は、...に書き換えます
  3. 個々のドメインには、独自のカスタム mod-rewrite ルールがあります。グローバルまたはドメインごとのどちらのルールが優先されますか? それらは結合しますか?グローバルな httpd.conf に "RewriteEngine On" ディレクティブを設定し、vhost.conf にもう一度設定しても問題ありませんか?

皆さんのおすすめを教えてください。この問題の解決策が切望されています。

4

1 に答える 1

1

私はガンボに同意しますが、それを行う方法は次のとおりです。

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.. 各ドメインには独自のカスタム mod-rewrite ルールがあります。グローバルまたはドメインごとのどちらのルールが優先されますか? それらは結合しますか?グローバルな httpd.conf に "RewriteEngine On" ディレクティブを設定し、vhost.conf にもう一度設定しても問題ありませんか?

これは、仮想ホストの mod_rewrite 構成の先頭に追加されます。

于 2010-05-20T01:46:55.163 に答える