#php #apache #.htaccess
#php #apache #.htaccess
Вопрос:
Я создаю сайт, на котором текстовый файл должен быть доступен напрямую с помощью cURL или wget, без аутентификации, к изменяющемуся списку IP-адресов с определенными датами истечения срока действия, которые могут храниться в базе данных.
Файл должен быть фактическим текстовым файлом (как в «file.txt «). Он должен быть доступен напрямую через Интернет в виде URI (например, «https://example.com/file.txt «). Это не может быть обернуто в PHP или HTML-страницу.
Итак, я думаю, что я должен использовать .htaccess для ограничения доступа к каталогу по IP. Вероятно, в любой момент времени будет несколько десятков IP-адресов.
Вопрос: Каков наилучший способ автоматизировать обновление разрешенных IP-адресов в .htaccess (то есть удалять IP-адреса с истекшим сроком действия и добавлять новые) каждую ночь?
Я знаю, что могу использовать PHP и MySQL, чтобы просто создать новый файл .htaccess с текущими активными IP-адресами всякий раз, когда они меняются. На самом деле это кажется самым простым способом. Просто напишите PHP-скрипт, содержащий всю информацию .htaccess, которая не изменяется, извлеките активные IP-адреса из базы данных и вставьте их туда, а file_put_contents — в качестве нового файла .htaccess. Это кажется достаточно простым. Но есть ли способ лучше?
В качестве альтернативы, есть ли какой-либо другой способ, помимо использования .htaccess, ограничить доступ к текстовому файлу по IP, учитывая, что текстовый файл должен быть URI?
Спасибо.
Комментарии:
1.
It can't be wrapped in a PHP
почему бы и нет? Поместите файл в закрытый каталог. Направляйте все запросы к неизвестным файлам в файл php. Сопоставьте ip-адрес с базой данных и распечатайте содержимое файла с помощью php.2. Хммм… Я об этом не подумал. Это позволяет мне использовать прямой PHP / MySQL для аутентификации по IP, но все равно возвращает ожидаемый результат запрашивающему серверу. Тот факт, что это должен был быть текстовый файл в URI, сбил меня с толку; но все, что мне нужно сделать, это спрятать его в другом месте. Спасибо!