Перезапись 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" предназначен именно для этого. Это позволяет вам использовать любой исполняемый файл в качестве вашей карты, все, что ваша программа должна делать, это читать в строках и выводить значение поиска.