htaccess 在请求包含父文件夹时限制访问

htaccess limit access when request includes parent folder

如果网站位于共享主机 space 中,具有父文件夹和子文件夹中的子域,当 url 请求包含父域时是否可以限制对子域的访问?

共享主机中的文件夹结构 space 是:

domain.com ETC 这个 那 subdomaina.com

我可以访问子域名了 一)http://subdomaina.com b) http://domain.com/subdomaina.com

如何防止 b 发生?

我在 domain.com 中添加了一个 .htaccess 文件,并通过 301 重定向到 http://subdomaina.com,但是我得到了一个像 http://subdomaina.[=27= 这样的循环].php/index.php/index.php...

听起来您的网站没有正确设置和配置。

is it possible to limit access to subdomain when url request includes parent domain?

是的,在正常的 DNS-> webserver virtual host -> source files (index.html etc) 配置下 - 对父域的请求及其内容与子域是分开的。
换句话说,子域实际上被视为完全不同的网站。

How can I prevent b from happening?

您需要配置网络服务器以将对子域的请求路由到文件系统上的单独文件夹。 (即 document root)。 您的服务器是共享的这一事实与您如何配置和组织文件等没有实际区别

所以你应该拥有的是

request for                              
subdomaina.com --->|             |--->subdomaina.com - content files
                   |             |   /home/web/subdomaina/index.html
                   |-->webhost --|
                   |   server    |     
request for ------>|             |---> domaina.com - content files
 domaina.com       |             |   /home/web/subdomaina/index.html

您在哪里配置网络服务器 "knows" 哪些文件适用于哪个域。

如何设置?

如果您有共享托管服务 - 通常您可以致电或向技术支持发送消息,请他们帮助设置您的子域。
否则你可以自己做 - 通常通过 cpanel。
您需要在哪里指定您的子域以及您的子域的文件所在的位置。

I can access subdomain a like a) http://subdomaina.com b) http://domain.com/subdomaina.com How can I prevent b from happening?

您可以在 subdomaina.com/.htaccess 文件中使用此代码:

RewriteEngine On

# forbid access is domain is not subdomaina.com
RewriteCond %{HTTP_HOST} !^(www\.)?subdomaina\.com$ [NC]
RewriteRule ^ - [F]