にアクセスvirtualhost
できる場合は、これを使用できます。
RewriteEngine on
RewriteMap hosts-deny txt:/home/youraccount/deny_list.txt
RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND [OR]
RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND
RewriteCond %{REQUEST_URI} ^/api [NC]
RewriteRule ^ - [F]
そして、deny_list.txt
ブラックリストに登録したいIPまたはHOSTのリストを持っています:
193.102.180.41 -
bsdti1.sdm.de -
192.76.162.40 -
詳しくはこちらをご覧ください。
または、 にアクセスできない場合はvirtualhost
、php ファイルの名前をたとえば一意の名前に変更して、thisismyapi.php
次のように使用できます。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
<Files "thisismyapi.php">
order allow,deny
allow from all
deny from 24.11.95.151
</Files>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !thisismyapi.php
RewriteRule ^api/?(.*)$ /api/thisismyapi.php [L]
なぜ別の名前に変更するのですか?
この方法ではどこにでも一致するため、ニーズに合わせて適切に機能し、他のファイルと競合することはありません。
たとえば、この方法では、ファイルの名前が index.php である場合、他のフォルダーの index.php と競合します。