[英]Block/Allow from IP using DNS provider no-ip.org htaccess
我有一個安全的網站(.htaccess =全部拒絕),我想允許某些人訪問
但是,他們使用的是便攜式筆記本電腦,並且由ISP為其分配了動態IP。
因此,我下載了no-ip客戶端,該客戶端應為它們提供可以解析為IP的主機。
但是,當我把
Allow from xxx.no-ip.org
在.htaccess文件中,我仍然獲得禁止頁面。
我還有其他允許使用的固定IP地址-並且可以正常工作-我已經測試過xxx.no-ip.org通過使用http://www.webyield.net/ipa.php解析為我想要的IP。
有什么想法我在這里做錯了嗎?
Apache的“ Allow
和Deny
規則使用通配符(例如Allow from *.example.com
),因此可以在反向DNS上使用。 您用戶的IP地址不會轉換為no-ip.org
地址(他們可能正在解析為ISP特定的地址),因此Apache拒絕了他們的訪問。
您可能最好向他們提供所有用戶名和密碼,並使用HTTP身份驗證(通過mod_authz_user或類似方式)來授予他們訪問權限。
這可以通過使用腳本(根據您的需要進行修改)來實現:
#!/bin/bash
# Dynamic IP .htaccess file generator
# Written by Star Dot Hosting
# www.stardothosting.com
dynDomain="$1"
htaccessLoc="$2"
dynIP=$(/usr/bin/dig +short $dynDomain)
echo "dynip: $dynIP"
# verify dynIP resembles an IP
if ! echo -n $dynIP | grep -Eq "[0-9.]+"; then
exit 1
fi
# if dynIP has changed
if ! cat $htaccessLoc | /bin/grep -q "$dynIP"; then
# grab the old IP
oldIP=`cat /usr/local/bin/htold-ip.txt`
# output .htaccess file
echo "order deny,allow" > $htaccessLoc 2>&1
echo "allow from $dynIP" >> $htaccessLoc 2>&1
echo "allow from x.x.x.x" >> $htaccessLoc 2>&1
echo "deny from all" >> $htaccessLoc 2>&1
# save the new ip to remove next time it changes, overwriting previous old IP
echo $dynIP > /usr/local/bin/htold-ip.txt
fi
比只是將其克隆以在.htaccess文件上生成新行:
*/15 * * * * /bin/sh /usr/local/bin/.sh yourhostname.no-ip.org /var/www/folder/.htaccess > /dev/null 2>&1
資料來源: https : //www.stardothosting.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.