パス/ディレクトリ/サーバー IP を除外する条件で Apache ヘッダーを設定する

パス/ディレクトリ/サーバー IP を除外する条件で Apache ヘッダーを設定する

私は Duplicator Pro という WordPress プラグインを使用していますが、インストーラーを使用してインストールする最良の方法は、ドメインではなくサーバーの IP を使用することです。これにより、自動入力とサーバーへの接続が容易になり、複数の ModSecurity ルールがトリガーされることもありません。

最適なインストール URL は次のとおりです。

http://111.222.333.444/~customcpanelaccount/customfolder/installer.php

の代わりに:

https://website.com/customfolder/installer.php

これらのファイルのいずれかをロードすると、自動的に次の場所にリダイレクトされます。

/customfolder/dup-installer/main.installer.php

ただし、サーバーには次の Apache/LiteSpeed ルールがあるため、http:// が https:// に自動的にリダイレクトされ、次のメッセージが表示されます。

ネットワークに接続

<IfModule mod_headers.c>
    Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

installer.php上記のApache/LiteSpeedルールをドメインにのみ適用し、直接IPには適用しないようにする方法、またはのファイルmain.installer.phpとディレクトリを使用するときにトリガーされないようにする方法を考えています。/dup-installer/

FilesNotMatch / DirectoryNotMatch / LocationNotMatch タイプの if ステートメントがないのは残念です。

何かアイデアをお持ちの方は、ご助言やアドバイスをいただければ幸いです。

答え1

DOMAIN_REQUESTEDドメインが要求された場合 (IP アドレスではなく)、環境変数 (例: ) を設定し、引数Headerを使用してこの環境変数が設定されているかどうかに基づいて条件付きでを設定できますenv=

例えば:

SetEnvIf Host "[a-z]" DOMAIN_REQUESTED
Header always set Content-Security-Policy "upgrade-insecure-requests;" env=DOMAIN_REQUESTED

Hostヘッダーに文字 az が含まれている場合は、IP アドレスではなくドメイン名を要求している必要があります。その場合DOMAIN_REQUESTED、env 変数は に設定されます1

しかし...

  • サーバーの IP アドレスとユーザーごとの Web ディレクトリを使用して、安全でない HTTP 経由でこれをインストールすることが望ましいというのは奇妙に思えます。ユーザーごとの Web ディレクトリ (mod_userdir) は、ルート相対 URL パスを実際に混乱させるため、通常は使用しない方がよいでしょう。

  • これがインストール プロセスのみの場合、そのHeaderディレクティブを一時的にコメント アウトするだけで済みませんか?

FilesNotMatch / DirectoryNotMatch / LocationNotMatch タイプの if ステートメントがないのは残念です。

まあ、ある意味、否定先読み(または後ろを見て)を正規表現に挿入して、一致がいつ行われるかを判断します。ない起こる。

...または、のファイルとディレクトリを使用するときにトリガーされないようにするにinstaller.phpmain.installer.php/dup-installer/

HTTPContent-Security-Policy: upgrade-insecure-requests;レスポンスヘッダーはリンクされたアセットにのみ影響し、トップレベルのナビゲーションには影響しません。したがって、これは と には適用されませんinstaller.phpmain.installer.phpこれらのリクエストがアップグレード(または、「リダイレクト」される可能性が高い) 場合は、他の何かがそれを行っています。

関連情報