2011-12-10 11 views
3

weblogicアプリケーションサーバー上で動作するWebアプリケーション(JQueryとSpring)があります。アプリケーションサーバーの前にapache httpサーバーがあります。 すべての着信要求は、Webサーバーを介して送信され、アプリケーションサーバーに到達します。apache httpサーバのリクエストヘッダーに基づいて着信リクエストを検証する

ここで、着信HTTPリクエストヘッダーの値を確認する必要があります。必要な場合は、リクエストをアプリサーバーに送信する必要があります。そうでない場合は、リクエストをブロックし、最終的には静的エラーページをエンドユーザーに表示します。

このロジックをApacheのhttpサーバに実装できるかどうかを知りたいと思います。ご意見をお聞かせください。

+0

私たちのサイトにふさわしい質問については、FAQ、http://webmasters.stackexchange.com/faqをご覧ください。これはすばらしい質問です。スタックオーバーフローに属しています。 –

答えて

1

これはmod_rewriteで行うことができます。正確な設定は含まれていませんが、mod_proxyタイプの設定をしている場合は、書き換えが通常のトラフィックの通過を妨げないようにしたいだけです。一般的な意味では、Apacheの設定では、あなたが希望:リライトの

  • 電源を入れ
  • 条件
  • ため
  • チェック

本当にを与えるための条件に基づいて書き換えルールを適用します。単純な例では、クエリ文字列内のキーを探していて、アクセス(403)が存在しない場合はそれを禁止すると、次のようになります。

RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} !somekey 
RewriteRule ^.*$ - [F,L] 

これはあなたが本当に望むほど複雑なことがあります。条件を連鎖させることができます(暗黙的なANDまたは明示的または間接的な[OR]フラグ)、あなたは禁止メッセージではなく実際のページを提供できます。

いつものように、設定をバックアップしてから修正してください。これは.htaccessでテストすることをお勧めします(ただし、パフォーマンス上の理由から、運用負荷の実際の設定に移動する方が良い)。

書き換えドキュメントがあまりにも素晴らしいリソースです:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

それは実際にはかなり良いドキュメントです。いくつかのポインタについては、フラグ([L] = last; [P] =プロキシされたリクエストとして扱う; [F] =禁止されたものなど)を検索し、一般的な正規表現の構文に精通した人が必要です。

関連する問題