Перезапись URL в Apache без mod_rewrite - PullRequest
0 голосов
/ 04 января 2011

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

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

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

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

1 Ответ

2 голосов
/ 04 января 2011

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

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

...