web-dev-qa-db-ja.com

一部の仮想ホストのApache HSTS例外

Apache 2.2.15のグローバル構成セクションには、次のようになっています( recommendation ごと)

<IfModule mod_headers.c>
Header add Strict-Transport-Security "max-age=15768000;includeSubDomains" env=HTTPS
</IfModule>

リクエストが特定のホスト(dev.Host.com)に対するものでない場合にのみ、このヘッダーを追加したいと思います。 どの ディレクティブheader addを特定のホストでない場合にのみ発生させるために使用しますか?

PS:この質問の2番目の部分は moved です。

6
Gaia
  1. X.x.x.x:443のVirtualHostディレクティブにIfModuleディレクティブのみを含める場合、そのVirtualHostにのみ適用され、httpsプロトコルにのみ適用されます。

  2. ディレクティブを試すことができます

    <If "%{HTTP_Host} = 'www.dev.domain.com'">
        <IfModule mod_headers.c>
            Header unset Strict-Transport-Security
            Header always set Strict-Transport-Security "max-age=0;includeSubDomains"
        </IfModule>
    </If>
    
5
Garreth McDaid

Apache 2.2では、おそらく以下のようなもので遊ぶことができます。

  • 一般的なケースを識別し、特定のケースを除外する環境を設定します。

    SetEnvIf HTTPS do_work_on_headers    
    SetEnvIf Host "^www.myexcludedhostname.tld$" !do_work_on_headers
    
  • 次に、条件付きでヘッダーを設定します。

    <IfModule mod_headers.c>
        Header add Strict-Transport-Security "max-age=15768000;includeSubDomains" env=do_work_on_headers
    </IfModule>
    
1
alxgomz