Назад | Перейти на главную страницу

Apache httpd перезаписывает URL-адрес на основе поиска строки запроса

Мне нужно переписать URL-адрес, чтобы направить запрос к различным внутренним серверам на основе параметра запроса, используя текстовую карту (queryparam servername).

Я пробовал RewriteMap, RewriteRule с prg: type и perl-скриптом. Но строка запроса не отображается в сценарии поиска.

например файл карты

QS1 Server1
QS2 Server1
QS3 Server3
QS4 Server4
etc.. (about 10K entries -= mapping to about 20 backend servers)

Если входной URL-адрес http://myrouter.com:8080/a/b/c?query=QS2

затем его нужно переписать и отправить на http: // Server1: 9988 / a / b / c? query = QS2 (да со строкой запроса)

http://myrouter.com:8080/a/b/c?query=QS4 отправлен в http: // Server4: 9988 / a / b / c? query = QS4

Мои текущие испытания, похоже, не помогают.

RewriteEngine on
RewriteMap distributeRequests "prg:/export/requestdistributor.pl"
RewriteRule ^(.*)$ ${distributeRequests:$1?%{QUERY_STRING}} [P]

Я искал прокси на основе параметра в URL-адресе. Но это хорошо для ограниченного набора записей поиска; не для отображения параметров запроса 10K на 10 внутренних серверов, которые я ищу.

Спасибо.