Я пытаюсь динамически внести IP-адреса в белый список, чтобы предоставить доступ к определенному каталогу.PHP-скрипт будет постоянно модифицировать файл whitelist.txt для добавления / удаления записей.
Я знаю, как правильно справиться с этим с помощью RewriteMap, но я не уверен, как это настроить.
Например, я хочу, чтобы пользователи обычно заходили на мой сайт, когда они посещают пример.com, однако я хочу запретить доступ ВСЕМ пользователям, посещающим что-либо в пути / каталоге блока "http://example.com/block", КРОМЕ этих IP-адресов в whitelist.txt, кроме того, эти IP-адреса в whitelist.txt будут иметь доступ только копределенная папка и файл внутри директории "block", запрос, например:
http://example.com/block/123/123.txt
Я попробовал код ниже (это грубый набросок, он полностью выключен и неправильнЯ уверен, но просто чтобы понять):
RewriteEngine on
RewriteCond %{THE_REQUEST} ^\/block+\ ##apply rules only for /block directory
RewriteMap ipmap txt://var/whitelist.txt
RewriteCond ${ipmap:%{REMOTE_ADDR}} ^\/([0-9]*).txt$ $1 [NC] ##check whitelist for matching IP AND specific dir and file
RewriteRule .* - [F,L]
Конечно, это не работает. Когда я посещаю example.com, мой сайт переходит в бесконечный цикл перенаправления.
Белый списокФайл .txt будет выглядеть следующим образом:
170.172.100.162 123
152.109.211.250 43
62.55.254.83 2345
227.202.162.48 32
203.52.248.55 533
Таким образом, IP-адрес 170.172.100.162 будет иметь доступ к http://www.example.com/block/123/123.txt
IP-адрес 152.109.211.250 будет иметь доступ к http://www.example.com/block/43/43.txt
... и так далее.