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

时间:2017-06-07 12:46:12

标签: .htaccess server dns subdomain

我们的网站允许在域之前使用任何前缀/子域名。

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

理想情况下,这应该在服务器配置文件中配置(同样,您可以将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]