1

特定の人にアクセスを許可したい安全なサイト(.htaccess =すべてから拒否)があります

ただし、モバイルラップトップを使用しており、ISPによってダイナミクスIPが割り当てられています。

そこで、IPに解決できるホストを提供するno-ipクライアントをダウンロードしました。

しかし、私が置くとき

Allow from xxx.no-ip.org

.htaccessファイルで、まだ禁止されているページが表示されます。

私は他の固定IPロケーションを許可し、動作しています。また、 http: //www.webyield.net/ipa.phpを使用して、xxx​​.no-ip.orgが目的のIPに解決されることをテストしました。

私がここで間違っていることについて何か考えはありますか?

4

2 に答える 2

3

ApacheAllowDenyルールはワイルドカード(たとえばAllow from *.example.com)を使用するため、逆引きDNSで機能します。ユーザーのIPアドレスはそのno-ip.orgアドレスに逆戻りしていないため(おそらくISPに固有のアドレスに解決されている可能性があります)、Apacheはユーザーのアクセスを拒否しています。

おそらく、すべてのユーザー名とパスワードを指定し、HTTP認証(mod_authz_userなどを介して)を使用してアクセスを許可するのが最善の方法です。

于 2012-08-06T00:05:17.740 に答える
0

これは、スクリプトを使用して実現できます(ニーズに合わせて変更します)。

#!/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

cronして.htaccessファイルに新しい行を生成するよりも:

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

ソース:https ://www.stardothosting.com

于 2016-05-09T18:50:39.497 に答える