如何停止处理不存在的域?

How can I stop processing of non-existent domains?

我们的网站允许在域名前添加任何 prefix/subdomain。

因此,如果我们的站点是 www.domain.com,则服务器允许; www.anything.domain.com,其中 'anything' 可以是任何字面意思,它显示页面上实际存在的任何内容。

因此,www.anything.domain.com/something.php 显示只能通过 www.domain.com/something.php 访问的内容.

有没有办法使用 .htaccess 来阻止这种情况发生,或者将其重定向到实际存在的版本?

或者这需要在服务器上完成吗?

有人知道为什么允许这样做吗?

理想情况下,这应该在服务器配置文件中配置(另外,您可以将 DNS 配置为简单地不解析不需要的主机名,但这可能是另一个问题)。

如果您无权访问服务器配置,可以在 .htaccess:

中进行
# to block access if any domain except example.com or www.example.com was used
RewriteEngine On
RewriteCond %{HTTP_HOST}  !=www.example.com
RewriteCond %{HTTP_HOST}  !=example.com
RewriteRule ^ - [F]

# if any domain except example.com or www.example.com was used, 
# redirect the request to www.example
RewriteEngine On
RewriteCond %{HTTP_HOST}  !=www.example.com
RewriteCond %{HTTP_HOST}  !=example.com
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301]