除非请求包含我网站的域名,否则可以使用 htaccess 拒绝所有请求吗?
Can htaccess be used to deny ALL unless the request contains my site's domain name?
查看我网站的日志后,我注意到至少有一半的可疑日志条目是通过服务器的 IP 地址(而不是域名)访问网站的。
我想拒绝访问我的整个网站除非请求包含我网站的域名。例如:
- 允许:www.mysite.com/any/directory/depth/index.php
- 允许:mysite.com/any/directory/depth/index.php
- 允许:images.mysite.com/any/directory/depth/thumbnails.php
- 已拒绝:123.456.789.101/
- 已拒绝:123.456.789.101/all/other/directories/
- 已拒绝:123.456.789.101/all_files_too.php
我见过其他示例,这些示例将重写 IP 请求,使其成为实际的域名。然而...出于我的目的,我希望我的 Apache/2.2.24 服务器只显示标准的“403 禁止访问”消息。
您可以尝试在文档根目录中添加 htaccess 文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} !mysite\.com$ [NC]
RewriteRule ^ - [L,F]
另一种选择是通过为 mysite.com
主机创建一个特定的虚拟主机来编辑您的虚拟主机配置文件,然后创建一个默认的虚拟主机(应该是第一个)只有一个
Deny from all
其中。
查看我网站的日志后,我注意到至少有一半的可疑日志条目是通过服务器的 IP 地址(而不是域名)访问网站的。
我想拒绝访问我的整个网站除非请求包含我网站的域名。例如:
- 允许:www.mysite.com/any/directory/depth/index.php
- 允许:mysite.com/any/directory/depth/index.php
- 允许:images.mysite.com/any/directory/depth/thumbnails.php
- 已拒绝:123.456.789.101/
- 已拒绝:123.456.789.101/all/other/directories/
- 已拒绝:123.456.789.101/all_files_too.php
我见过其他示例,这些示例将重写 IP 请求,使其成为实际的域名。然而...出于我的目的,我希望我的 Apache/2.2.24 服务器只显示标准的“403 禁止访问”消息。
您可以尝试在文档根目录中添加 htaccess 文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} !mysite\.com$ [NC]
RewriteRule ^ - [L,F]
另一种选择是通过为 mysite.com
主机创建一个特定的虚拟主机来编辑您的虚拟主机配置文件,然后创建一个默认的虚拟主机(应该是第一个)只有一个
Deny from all
其中。