Typo3で生成されたウェブサイトを提供するためにApache2.4を実行しています。
一般的には、すべてのリクエストに対してX-Frame-Options SAMEORIGIN
ヘッダーが必要です。
1つの例外を除いて。特定のURLの場合、このヘッダーは別のドメインのiFrame内で使用する必要があるため、設定を解除する必要があります。
だから私はこのようなものを追加しました:
Header always set X-Frame-Options SAMEORIGIN
<Location /anotherURL>
Header always unset X-Frame-Options
</Location>`
指定されたURL https://www.example.com/
をリクエストしようとすると、レスポンスにX-Frame-Options
- Headerが表示されますが、https://www.example.com/anotherURL
を使用すると、このヘッダーはまだ存在します。
LocationディレクティブにRequire all denied
を追加して、Locationディレクティブが実際に処理されることを確認しました。これがアクティブになっていると、予想どおり、URL /anotherURL
へのアクセスが拒否されます。
場所を/anotherURL
から/typo3
に変更すると、未設定は期待どおりに機能します。
これら2つのURLの唯一の違いは、/typo3
がhtdocsの下のディレクトリ構造に存在するのに対し、/anotherURL
はTypo3によって処理されるURLであるということです。
私の質問は、Apacheがヘッダーのunsetコマンドを無視するのはなぜですか? Apachesの観点からは、Typo3が何をしているのかを知らないはずです。いったん応答ヘッダーが生成されると、Location-Directiveが一致するはずです(これは明らかにそうです)、内部のコマンドを処理します。
HTTPヘッダーの設定解除に関する問題に関する他のいくつかの質問を参照しましたが、私の特定の問題を解決する提案はありません。
これを試して:
<Location /anotherURL>
Header always unset X-Frame-Options
Header unset X-Frame-Options
</Location>
Jbossバックエンドでヘッダーの設定を解除せずに上記と同じ問題を修正しました。理由をもう一度思い出せません(always
キーワードを含める場合の処理の順序と関係があります)。