web-dev-qa-db-ja.com

.htaccess:IPによる単一ファイルへのアクセスを制限する方法?

私はすべてを調べましたが、ディレクトリレベルのIP制限について話している同じ情報に遭遇し続けます。これは通常、次のようなものです。

Order Deny,Allow
Deny from all
Allow from 123.123.123.123

同じタイプのアクセス制限をページ/ドキュメントに関連付けることは可能ですか?

22
HeadScratching

これにより、IP 127.0.0.1の誰かorが有効なユーザーとしてログインできるようになります。 configまたは.htaccessファイルに貼り付けます。

    <Files learn.php>
        Satisfy any
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1

        AuthType Basic
        AuthName "private"
        AuthUserFile /var/www/phpexperts.pro/.htpasswd
        AuthGroupFile /dev/null
        Require valid-user
    </Files>

IPのみ:

    <Files learn.php>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Files>

それは間違いなくあなたの質問に答えます。

36

ディレクティブは次のようにする必要があると思います。

Order deny,allow

上記の答えが機能するため(少なくともIP単独ソリューションの場合)。

9
Dominic

Mod-rewriteベースのソリューション:

RewriteEngine on

RewriteCond %{REMOTE_ADDR} !^Y\.O\.U\.R\.IP$
RewriteRule ^file\.php$ - [F,L]

上記のrewriteRuleは、クライアントIPがRewriteCondのパターンのIPアドレスと一致しない場合、file.phpへのすべての要求を拒否します

2
starkeen

より最新のApache 2.4の例:

<Files file.html>
    Require ip 123.123.123.123
</Files>

追加のオプションと例の詳細なドキュメントは次のとおりです。 https://httpd.Apache.org/docs/2.4/howto/access.html<Files>ディレクティブのドキュメント: https://httpd.Apache.org/docs/2.4/mod/core.html#files

<Files><Directory>セクション内にネストして、ファイルシステムの適用部分を制限できることに注意してください。

0
kjones