我有一台运行 Apache 2.2.15 的 CentOS 服务器。如果服务器的 IP 地址是 198.51.100.4 并且我在浏览器中写入http://198.51.100.4它会在我的网站上。
我想防止这种情况。我希望我的网站只能在 FQDN 上访问,即http://example.com/。
如何配置我的服务器,以便在访问 IP 地址时无法访问该网站?
wur*_*tel 11
你可以添加一个默认的虚拟主机,它只会给出一个“拒绝”的错误,或者其他什么。当浏览器访问您的网络服务器时,URL 中没有主机且与其他虚拟主机中的任何ServerName或ServerAlias行匹配的主机将由默认虚拟主机提供服务。
所以在你的 apache 配置中:
<VirtualHost *:80>
ServerName default
DocumentRoot /var/www/default
...
</VirtualHost>
<VirtualHost *:80>
ServerName mywebsite.com
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Alias *除了虚拟主机中允许的流量外,您还可以使用它来捕获任何其他流量,为此您必须在最后一个位置使用具有*别名的虚拟主机。
就像那样,只会提供定义的域。
<VirtualHost *:80>
ServerName mywebsite.com
DocumentRoot /var/www/default
...
</VirtualHost>
<VirtualHost *:80>
ServerName another.mywebsite.com
DocumentRoot /var/www/another
...
</VirtualHost>
# /!\ THIS HAS TO BE ON THE LAST POSITION /!\
<VirtualHost *:80 *:443>
# [ Server Domain ]
ServerName localhost
ServerAlias *
# [ Cancel trafic ]
RewriteRule .* - [END,R=406]
# [ Custom Log ]
CustomLog ${APACHE_LOG_DIR}/other.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
在我的示例中,只允许 mywebsite.com 和 another.mywebsite.com,所有其他域或 IP 都将取消流量。
要取消流量,您可以使用重定向到-然后添加错误代码,例如我使用 RewriteRule 重定向到406 Not Acceptable ( R=406)。
在这里您可以找到重定向代码列表:https : //fr.wikipedia.org/wiki/Liste_des_codes_HTTP
| 归档时间: |
|
| 查看次数: |
2669 次 |
| 最近记录: |