Apache внутренний модуль перезаписи для уникальных URL? - PullRequest
0 голосов
/ 03 февраля 2011

Я пытаюсь создать безопасное веб-приложение для загрузки по следующему сценарию. Кто-нибудь знает, как этого можно достичь:

1) пользователю дается одноразовый URL а) Этот одноразовый URL хранится в БД Oracle, сопоставленной с фактическим URL 2) Когда пользователь посещает одноразовый URL: a) Модуль Apache подключается к БД, чтобы увидеть, существует ли одноразовый URL б) если он существует, apache выполняет внутреннюю перезапись на фактический URL в) если нет, то 404 или любая другая ошибка (404 или что-то еще) достаточно хороша

2.a и 2.b - это то, на что я ищу ответы. Я не уверен, как это сделать и сделать так, чтобы перезапись происходила внутри.

Спасибо

Ответы [ 3 ]

0 голосов
/ 03 февраля 2011

Это должно быть возможно с использованием новой функциональности RewriteMap dbd-типа, доступной в транковой версии Apache.Очевидно, что с учетом того, что это текущая ветвь разработки сервера, вам нужно быть осторожным с изменяющими конфигурацию изменениями со временем.

RewriteEngine On
RewriteMap urlmapper "dbd:SELECT redirect_url from my_table WHERE some_key = %s"
RewriteRule /one_time/(.+) ${urlmapper:$1|/404.html}

Конечно, вам понадобится дополнительная логика для обработки случаев, когда нет результатоввернулся.

http://httpd.apache.org/docs/trunk/rewrite/rewritemap.html#dbd

0 голосов
/ 28 марта 2011

Понял это ... Вы можете добиться этого с помощью XSEND (https://tn123.org/mod_xsendfile/)... Установите скрипт php для обработки любых URI с загрузкой файлов и запретите весь доступ к фактическому каталогу файлов, поэтому единственный способ заставить файл его принудительно заставить это через XSEND.

0 голосов
/ 03 февраля 2011

AFAIK, это невозможно только через apache.Что вы должны сделать, это:

  • Сконфигурировать apache для перенаправления уникальных ссылок на серверный скрипт, который вызовет «магию»
  • серверный скрипт проверяет, предоставлен ли уникальныйURL-адрес все еще действителен и действует в соответствии с:
    • обслуживает файл и делает недействительным (удаляет или помечает как обслуживаемый) строку уникального URL-адреса в базе данных
    • отвечает со статусом 404 или перенаправляет на страницу 404в других случаях

Точная информация о том, как добиться успеха, зависит от механизмов сценариев, доступных вам на сервере, и ваших предпочтений.Это можно сделать различными способами, от php до cgi, .NET, asp и многих других.

...