特定のURLへのアクセスをブロックしようとしています。
https://example.com/questions/topic
次の内容を含むblacklist.txtファイルがあります。
questions/topic deny
これで私の設定は次のようになります。
RewriteMap access txt:path_to_blacklist.txt
RewriteCond ${access:%{REQUEST_URI}} deny [NC]
RewriteRule .* - [F,L]
しかし、まだ開くことができることがわかりましたhttps://example.com/questions/topic通常、RewriteMapの代わりに次の設定を使用しようとすると:
RewriteCond %{REQUEST_URI} questions/topic [NC]
RewriteRule .* - [F,L]
うまくいきますが、URLにアクセスできません。それでは、RewriteMapを使用して同じ結果をどのように取得できますか?
答え1
${REQUEST_URI}
リースの削減を含む「後頭部を打つ」ことは監督でした。お持ちの場合
/questions/topic deny
あなたのファイルにあれば大丈夫でしょう。 (RewriteMapは正確に一致キールックアップの場合、questions/topic
RewriteCondに明示的に入れると正規表現の一致で^
固定されていないため、$
あなたの場合は部分文字列の一致に帰結します。 )
個人的な好みに応じRewriteRule
て、マッチングに対して何もしないので、「何も一致」ではなくRewriteRule ^
「RewriteRule .*
何も一致」と書くことができます。前者は文字列を見る必要がないので、おそらくより速いでしょう。ここでは.*
貪欲で、すべての文字列を読みます。