我有一个使用Apache作为Web服务器的Rails应用程序。我希望对其进行配置,以便仅主机域和专用IP可以访问该站点。使用Apache 2.4和Require做一些测试时,我设置了以下内容:
ServerName www.sitename.com
ServerAlias sitename.com
DocumentRoot /u/apps/core/current/public
<Directory "/u/apps/core/current/public">
Options FollowSymLinks
AllowOverride None
Require all denied
Require host sitename.com
Require ip 10.255
</Directory>
使用此设置,我可以通过专用IP访问该站点,并且一切似乎都正常。我想测试所有其他IP是否都将被阻止,所以我删除了该行
Require ip 10.255
在这一点上,我希望在使用私有IP时被拒绝访问该站点,这就是我希望该功能适用于所有公共IP的功能,而与“需要ip”行无关。
问题是删除Require行后,我没有被拒绝访问私有IP。我仍然可以看到该站点的HTML。 CSS和javascript不再加载,但是我希望什么都没有加载。我希望看到浏览器错误页面。
我尚未在生产环境中尝试此操作,但是总体目标是只能通过主机名sitename.com访问该站点,我还配置了各种重定向,例如http-> https,sitename.com将进行重定向前往www.sitename.com。
我觉得此配置必须是我所忽略的一条简单的线,有人知道为什么即使我只有以下设置,我仍然可以基于IP访问该站点?
Require all denied
Require host sitename.com