問題タブ [mod-headers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - apache2 mod_headers が機能しない
質問の説明:自分のサイトに「Access-Control-Allow-Origin」を設定したいので、Apache の設定 (ほぼどこでも) で設定しましたが、機能しません。テスト用に他のヘッダーも設定しましたが、まだ機能していません。
アパッチのバージョン: 2.2.22
Apache モジュール: http://www.anwcl.com/test/show_modules.php
私のターゲットURL:
そして、それは私のローカルファイルにリンクされています:
そして、これが私のApacheの構成です:
E:\wamp\bin\apache\apache2.2.22\conf\httpd.conf
E:\wamp\bin\apache\apache2.2.22\conf\extra\httpd-vhosts.conf
E:\wamp\www\.htaccess
E:\wamp\www\test\.htaccess
そして、これがWiresharkのキャップです。予想されるヘッダーはありません:
apache - Apache ヘッダーを条件付きで設定する
私は apache サーバーを使用しており、条件付きでヘッダーを追加したいと考えています。
URI が特定の正規表現に一致する場合は、ヘッダーを追加したいと思いAccess-Control-Allow-Origin: *
ます。これを行う良い方法は何ですか?
私がこれまでに試したこと:
を使用して、リクエスト ハンドラによって呼び出されるコードを追加しました
apr_table_add(rq->headers_out, "Access-Control-Allow-Origin", "*")
。Content-Type: application/x-javascript
しかし、ヘッダーも設定されている場合は常に、応答を送信する前にApacheがヘッダーを削除するようです。これは間違った方法ですか?Apache がヘッダーを削除するのはなぜですか?mod_headers が提案されていると聞いたことがあります。mod_headers には、リクエスト URI と一致する正規表現に基づいてヘッダーを配置する機能がありますか?
apache - httpd.conf で有効になっているにもかかわらず、mod_headers モジュールがロードされない
mod_headers
GET パラメータに応じてファイルを強制的にダウンロードする必要があります。
上記のコードはエラー 500 を生成します。ただし、適切にラップすると<IfModule>
、何も実行されません。
mod_headers
これは、まったくロードされていないと思います。しかし、私はそれを有効にしていhttpd.conf
ます:
...
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/ mod_headers.so
#
LoadModule heartbeat_module modules/mod_heartbeat.so
...
どの mod がロードされ、何がロードされていないかを確認するためのデバッグ ログはありますか?
.htaccess - ファイル内のバックスラッシュまたはスラッシュは .htaccess に一致します
ディレクトリ内のファイルを対象とする Web の例が見つからないため、以下が正しいかどうかはわかりません。
それは大丈夫ですか、それとも:
regex - mod_header を使用して Cookie ドメインを変更する
ウェブサイトを複数のサブドメインに分割しており、既存の Cookie はすべて単一のドメインに関連付けられています。Apache を使用して Cookie を編集してドメインをリセットしようとしていますが、正しい方法で問題が発生しています。
問題は、Set-Cookie ヘッダーに複数のタプルがさまざまな順序と大文字と小文字で含まれており、ドメインが含まれていない場合があることです。
多くの柔軟性があるため、mod_rewrite を使用して調査しましたが、これは個々の応答 Cookie ではなく、すべての要求 Cookie %{HTTP_COOKIE} で機能するようです。応答内のすべての Cookie を変更する必要があります。
私は mod_header を試して解決策を見つけましたが、タプルが正しい順序で存在することに制限されているのではないかと心配しています。
これも、HttpOnly と Secure が存在する場合、それらが最後にあることを前提としています。バックエンドでは設定せず、後で Apache が追加するため、これは安全な方法です。
バックエンドは、いくつかの Java アプリケーションです。それらを変更することは長期的なアプローチかもしれませんが、私は現在、Java レイヤーの前にある Apache レイヤーに限定しています。
以下を試しましたが、ドメインが存在する必要があります。
ドメイン グループをオプションにしようとしましたが、ドメイン タプルが存在する場合でも、最初のグループが貪欲になります。ドメインタプルが存在しない場合、グループが貪欲になるかどうかは気にしません。レイジーとしてコーディングしても役に立ちませんでした。
助言がありますか?私の正規表現スキルは非常に試行錯誤していますが、私の直感はこれが実行可能であることを教えてくれます。
ありがとう、ウェス。
ボーナス質問:
開発から運用に移行するにつれてドメインが変化するため、複数のドメインをサポートする必要があります。ヘッダー変数を設定または追加するときは環境変数を使用できますが、編集するときは使用できません。助言がありますか。
これは、値の環境変数で機能します。
これは、置換の環境変数ではありません。
apache - Apache VirtualHost で ProxyPreserveHost と RequestHeader set Host の両方を使用できますか?
ProxyPass がリクエストを server2 に送信するときに、リクエスト ヘッダーのホストを「server2」に設定しようとしていますが、それ以外の場合 (server1 に渡すとき) はホストを保持します。
/path1 で始まる受信 URL に対して ProxyPreserveHost をオフにし、他のすべての URL に対してオンにする方法はありますか? または、上記のコード サンプルで試したように RequestHeader のホストを変更します (これは機能しませんでした)。
Ubuntu 12.04 で Apache バージョン 2.2.22 を使用しています
ubuntu - mod_headers を使用した apache2 のパペット構成
puppet マニフェストを使用して Vagrant ボックス (Ubuntu) を構成しています - Vagrant ホストのサイトにアクセスしたときにエラーが発生した場合を除いて、すべてが機能しています。
これは、Apache の mod_header がロードされていないことが原因だと思います。apache2 のパペット マニフェストは単純です。
mod_headers を有効にするために Vagrant ボックスをプロビジョニングするように puppet に指示するにはどうすればよいですか?