Forum Discussion
Irule modify host, uri on response
Hello,
The scenario is that we have url that needs to be translated to another url. So this needs to be done at the request. And for the response the url needs to be translated back to its original url.
For the request this works and this is how we have done this.
when HTTP_REQUEST {
if { ([HTTP::host] equals "test.domain.be") } {
set uris [HTTP::uri]
set newuri "/test[string range [string tolower [HTTP::uri]] 0 end]"
HTTP::uri $newuri
HTTP::host "test.newdomain.be"
}
}
So the user gives in a url. for example: test.domain.be/abc. We translate this into: test.newdomain.be/test/abc. So there is uri and host translation.
How can we do this for the response? So everything what we did here but then in reverse?
Hello Thomasvr
Actually this doesn't make sense.
"Host" is a header which only applies to requests.
#--- REQUEST ---# GET / HTTP/1.1 User-Agent: curl/7.26.0 Host: google.com Accept: */*
The most similar header in the response is "Location" which indicates the URL for redirection.
#--- RESPONSE ---# HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ Content-Type: text/html; charset=UTF-8 Date: Thu, 27 Jun 2019 00:40:48 GMT Expires: Sat, 27 Jul 2019 00:40:48 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 219 X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN
You can replace it using next iRule
when HTTP_RESPONSE { if { [HTTP::is_redirect] }{ HTTP::header replace Location "https://www.google.uk" } }
KR,
Dario.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com