尝试通过 htaccess 文件配置基于域的访问

尝试通过 htaccess 文件配置基于域的访问

我在 no-ip.com 上创建了一个帐户,该帐户将我的笔记本电脑的 IP 注册到其服务的子域 (mysubdomain.no-ip.info)。当我对该子域执行 nslookup 时,我看到该服务正在运行,并且它指向了我笔记本电脑的正确 IP。

现在我想在受 htaccess IP 限制保护的服务器管理站点上提供对该子域的访问权限。当我尝试将子域添加到我的脚本时,它不起作用。我做错了什么吗?我基本上是想让我的笔记本电脑无论我何时都可以登录,同时仍然阻止所有其他 IP 访问该站点。

以下是我尝试访问的服务器目录中的 .htaccess 文件。尝试访问该目录时出现 403 错误。输入我的笔记本电脑的确切 IP 而不是子域名即可。

## password begin ##
AuthName     "Restricted Access"
AuthUserFile /usr/www/users/site/.passwd
AuthType     Basic
Require valid-user
Order deny,allow
Deny from all
Allow from 69.1.122.161 mysubdomain.no-ip.org
Satisfy All

答案1

在没有“全部拒绝”语句的情况下进行测试。

Deny from all

订单声明已经拒绝了除您明确允许的内容之外的所有内容。

Order deny,allow

我还没有验证过这个理论;一定要验证一下。

答案2

这不起作用,因为访问也基于 PTR(IP 反向记录),而不仅仅是指向 IP 地址的 A 记录。摘自 Apache 手册:

(部分) 域名
示例:

允许来自 apache.org
允许来自 .net example.edu

名称匹配或以此字符串结尾的主机允许访问。仅匹配完整组件,因此上述示例将匹配 foo.apache.org,但不会匹配 fooapache.org。此配置将导致 Apache 对客户端 IP 地址执行双重反向 DNS 查找,而不管 HostnameLookups 指令的设置如何。它将对 IP 地址执行反向 DNS 查找以查找关联的主机名,然后对主机名执行正向查找以确保其与原始 IP 地址匹配。只有正向和反向 DNS 一致且主机名匹配时才允许访问。

相关内容