使子網域檔案只能透過子網域存取

使子網域檔案只能透過子網域存取

在共享主機上,我有一個public_html網站所在的目錄。建立了多個子網域,它們位於public_html類似等位置public_html/subdomain1public_html/subdomain2

這使得這些子站點可以透過兩種方式存取:

1.)domain.com/subdomain1

2.)subdomain.domain.com

我需要的是禁止每個子網域的第一個選項。

答案1

這是我在尋找這個問題時偶然發現的第一個問題,不幸的是它在五年多的時間裡沒有得到答案。所以我想通了,並想在這裡分享我的方法。

使用<If>語句(從 Apache 2.4 開始提供),您可以執行以下操作:

將以下內容放入.htaccess子目錄中的檔案中。

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

如果您需要更多控制,例如允許存取多個(子)網域,您也可以使用正規表示式:

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

相關內容