使子域文件只能通过子域访问

使子域文件只能通过子域访问

在共享主机上,我有一个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>

如果您需要更多控制,例如允许访问多个(子)域,您也可以使用 RegEx:

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

相关内容