Могу ли я настроить haproxy для перенаправления URL-адреса, заканчивающегося на / video1? Autoplay = 1, на другой URL-адрес, но с сохранением значения строки запроса?
например
http://domain.com/video1?autoplay=1
необходимо перенаправить на
http://newdomain/video/1?autoplay=1
Я могу сделать acl для соответствия / video1, но не могу понять, как выбросить все, что находится слева от строки запроса.
заранее спасибо
Вы можете перенаправить и сохранить строку запроса:
acl path_video1 path /video1
http-request redirect location /video/1?%[query] if path_video1
Если вы хотите любой номер для работы (например, /video234
) это только немного сложнее:
acl path_video path_reg ^/video[\d+]
http-request redirect location %[path,regsub(/video,/video/,)]%[query] if path_video
Это соответствует числовой части с использованием регулярного выражения, а затем просто заменяет /video
с участием /video/
, и сохраняет строку запроса.
Я не думаю, что текущая версия HAproxy поддерживает такое перенаправление. Действительно ли это должен быть HAproxy? Возможно, вы также можете использовать Apache на локальном хосте и заставить его слушать, скажем, порт 81, и выполнять перенаправление, но сохранить строку запроса через mod_rewrite. Это, конечно, добавит накладных расходов.
Не могли бы вы объяснить, для чего это было бы полезно? Это может быть легко реализовать в haproxy и даже до dev16 за несколько дней, но перед добавлением функций мне нужно убедиться в их использовании.