Apache 使用DNS提供商no-IP.org htaccess阻止/允许来自IP

Apache 使用DNS提供商no-IP.org htaccess阻止/允许来自IP,apache,.htaccess,dns,ip,Apache,.htaccess,Dns,Ip,我有一个安全站点(.htaccess=Deny from all),我想允许某些人访问该站点 但是,他们使用的是移动笔记本电脑,ISP为他们分配了dynamics IP 所以,我没有下载ip客户端,它应该给他们一个可以解析为ip的主机 然而,当我把 Allow from xxx.no-ip.org 在.htaccess文件中,我仍然得到禁止的页面 我有其他允许的固定IP地址-并且正在工作-并且我已经测试了xxx.no-IP.org通过使用解析到我想要的IP 你知道我做错了什么吗?ApacheA

我有一个安全站点(.htaccess=Deny from all),我想允许某些人访问该站点

但是,他们使用的是移动笔记本电脑,ISP为他们分配了dynamics IP

所以,我没有下载ip客户端,它应该给他们一个可以解析为ip的主机

然而,当我把

Allow from xxx.no-ip.org
在.htaccess文件中,我仍然得到禁止的页面

我有其他允许的固定IP地址-并且正在工作-并且我已经测试了xxx.no-IP.org通过使用解析到我想要的IP


你知道我做错了什么吗?

Apache
Allow
Deny
规则使用通配符(例如,
Allow from*.example.com
),同样也适用于反向DNS。您的用户的IP地址没有反转为
no IP.org
地址(他们可能解析为ISP特有的地址),因此Apache拒绝他们访问


您最好只给他们提供所有用户名和密码,并使用HTTP身份验证(通过或类似方式)授予他们访问权限。

这可以通过使用脚本实现(修改以满足您的需要):

而不仅仅是cron它以在.htaccess文件上生成新行:

*/15 * * * * /bin/sh /usr/local/bin/.sh yourhostname.no-ip.org /var/www/folder/.htaccess > /dev/null 2>&1

来源:

正如Daskwuff所指出的,没有ip是没有帮助的,因为HTTP中没有使用客户端域名,并且您的服务器无法知道它(除了不适用于动态ip的反向DNS)。
*/15 * * * * /bin/sh /usr/local/bin/.sh yourhostname.no-ip.org /var/www/folder/.htaccess > /dev/null 2>&1