Перезапись URL в Apache без mod_rewrite

Я портирую фильтр IIS asapi на linux/apache, и мне интересно, как лучше всего это сделать. В IIS этот фильтр isapi перехватывает запрос, выполняет поиск в базе данных, чтобы найти файл, запрашиваемый пользователем, и затем переписывает URL-адрес, чтобы напрямую обслуживать этот файл.

Каков наилучший способ сделать это на Apache? Кажется, у mod_rewrite нет возможности вставлять пользовательский код для поиска в базе данных, поэтому мы не можем его использовать. Мы не можем использовать mod_isapi, так как наша DLL является фильтром, а модуль не поддерживает это.

Прямо сейчас я думаю, что самый простой способ - написать наш собственный модуль C, используя в качестве руководства код mod_rewrite. Я бы хотел этого избежать, если смогу. Я также не хочу выдавать HTTP-перенаправление для каждого запроса через perl/PHP/ любой другой скрипт, так как при перенаправлении производительность будет снижаться.

Предложения? Можем ли мы использовать обработчики Apache или фильтры для этого?

1 ответ

Решение

В mod_rewrite, MapType "prg" предназначен именно для этого. Это позволяет вам использовать любой исполняемый файл в качестве вашей карты, все, что ваша программа должна делать, это читать в строках и выводить значение поиска.

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

Другие вопросы по тегам