サブドメインのファイルをサブドメイン経由でのみアクセスできるようにする

サブドメインのファイルをサブドメイン経由でのみアクセスできるようにする

共有ホスティングには、public_htmlサイトが配置されているディレクトリがあります。複数のサブドメインが作成されており、 などに配置されていpublic_htmlます。public_html/subdomain1public_html/subdomain2

これにより、これらのサブサイトには 2 つの方法でアクセスできるようになります。

1.)domain.com/subdomain1

2.)subdomain.domain.com

必要なのは、すべてのサブドメインの最初のオプションを禁止することです。

答え1

これは私がこれを探しているときに偶然見つけた最初の質問でしたが、残念ながら 5 年以上も答えが見つかりませんでした。そこで私は答えを見つけたので、ここで私のアプローチを共有したいと思います。

ステートメント (Apache 2.4 以降で利用可能)を使用すると<If>、次の操作を実行できます。

.htaccessサブディレクトリ内のファイルに次の内容を保存します。

<If "%{HTTP_HOST} != 'mysubdomain.mydomain.tld'">
    Deny from all
</If>

複数の(サブ)ドメインへのアクセスを許可するなど、さらに制御が必要な場合は、正規表現を使用することもできます。

<If "! %{HTTP_HOST} =~ m#^mysubdomain\.mydomain\.tld$#">
    Deny from all
</If>

関連情報