Использование Haproxy 1.5.12, работающего на Ubuntu 12.04
Мой веб-сайт получает много запросов вроде этого:
http://www.example.com/foo/bar/mypage.php?gallery=&position=3
правильный URL должен быть:
http://www.example.com/foo/bar/mypage.php?gallery=photogallery&position=3
Мне удалось переписать запросы на правильный URL, Но похоже, что ничего не работает, так что я явно чего-то упускаю.
Есть предложения?
Спасибо
Вы можете достичь того, что ищете, используя 3 строки конфигурации, которые используют ключевое слово http-request
.
Первая устанавливает фиктивный заголовок, который мы будем использовать в следующих двух.
http-request set-header X-Location-Path %[capture.req.uri] if fix_gallery
Вторая выполняет замену, необходимую для исправления запроса URL.
http-request replace-header X-Location-Path (.*)gallery=&(.*) \1gallery=photogallery&\2 if fix_gallery
Последняя строка указывает направление на измененный URL.
http-request redirect location http://www.example.com/%[hdr(X-Location-Path)] if fix_gallery
Это работает, если у вас только один домен, но его можно построить HTTP-запрос перенаправляет
строки, которые будут работать с любым доменом и схемой.
http-request redirect location https://%[hdr(host)]/%[hdr(X-Location-Path)] if fix_gallery { ssl_fc }
http-request redirect location http://%[hdr(host)]/%[hdr(X-Location-Path)] if fix_gallery !{ ssl_fc }