Htaccess を使用して URL とそのサブ URL をブロックする

Htaccess を使用して URL とそのサブ URL をブロックする

URL があります。そのページへのアクセス、表示、使用をhttp://example.com/web/en/press-release/すべてのユーザーからブロックするにはどうすればよいでしょうか?http://localhost:10004/web/en/press-release/*.htaccess

特定の IP からのみアクセスできるようにしたいです。

これは気に入りましたが、動作しませんでした。

# Press Release Blocked Now
RewriteCond %{HTTP_REFERER} web/en/press-release/ [NC,OR]
RewriteRule .* - [F]

答え1

もし、あんたがしなければならない使用.htaccessファイル限界を知っておく必要があります:

.htaccessファイル (または「分散構成ファイル」) は、ディレクトリごとに構成を変更する方法を提供します。 1 つ以上の構成ディレクティブを含むファイルは、特定のドキュメント ディレクトリに配置され、ディレクティブはそのディレクトリとそのすべてのサブディレクトリに適用されます。

つまり、設定をコントロールできるのですファイルシステムコンテナそれよりもウェブスペースコンテナ、デフォルトではすべてのサブディレクトリに構成が適用されます。したがって、目的を達成するには、.htaccessURL パスに対応するファイル システム パスにファイルを配置する必要があります/web/en/press-release/

/web/en/press-release/両方の とlocalhost:10004が同じディレクトリを参照し、両方がApacheを使用してファイルシステムから直接提供される場合example.com(つまり、リバースプロキシ)の場合、ファイルシステムコンテキストは良い選択です。構成セクション: いつ何を使用するか:

ファイルシステム コンテナーと Web スペース コンテナーの選択は、実はとても簡単です。ファイルシステムに存在するオブジェクトにディレクティブを適用する場合は、常に<Directory>または を使用します<Files>。ファイルシステムに存在しないオブジェクト (データベースから生成された Web ページなど) にディレクティブを適用する場合は、 を使用します<Location>

ファイルシステム内のオブジェクトへのアクセスを制限する場合は、決して使用しないことが重要です<Location>。これは、多くの異なる Web スペースの場所 (URL) が同じファイルシステムの場所にマップされ、制限が回避される可能性があるためです。

の代わりにmod_rewriteを使用してアクセスを制御するApacheは直接アクセス制御ディレクティブを使用すると、設定が読みやすくなり、管理しやすくなります。Require指令からmod_authz_coreもっているip

Require ip 192.0.2.100
Require ip 198.51.100.0/24
Require ip 2001:DB8:C0F:FEE::/64

関連情報