Forum Discussion
walt_97468
Nimbostratus
Dec 02, 2008302 redirect string capture and replace
I have modified a previous post for this irule:
when HTTP_REQUEST {
HTTP::header replace "Host" "www.test.com"
}
when HTTP_RESPONSE {
HTTP::header replace "Host" "www.test2.com"
if { [HTTP::status] starts_with "3"} {
if { [HTTP::header location] contains "http://www.redirect.com/" } {
set newLoc [string map {www.redirect.com www.test2.com} [HTTP::header location] ]
HTTP::header replace location "$newLoc"
}
}
}
We are replacing the host for both requests and responses. Also,when a server sends a 302 response (and I also want to look for 301's), the response includes a location field. A packet capture shows that the loaction field is set to "http://www.redirect.com"
All I need to do is to change www.redirect.com to www.test2.com, and leave the rest of the URI intact. Am I going about this the right way?
Thanks for your help!
6 Replies
Sort By
- hoolio
Cirrostratus
That should work okay. You could replace [HTTP::status] starts_with "3" with HTTP::is_redirect. Also, the Host header does not exist in responses, so you don't need to try to replace/insert it.when HTTP_REQUEST { Replace the existing host header value with www.test.com HTTP::header replace "Host" "www.test.com" } when HTTP_RESPONSE { Check if response is a redirect if { [HTTP::is_redirect]} { Check if response contains the old domain name if { [HTTP::header location] contains "http://www.redirect.com/" } { Replace the old domain name with the new one in the Location header HTTP::header replace location [string map {www.redirect.com www.test2.com} [HTTP::header location]] } } }
- walt_97468
Nimbostratus
It's not rewriting it to www.test2.com.. We are still being redirected to www.redirect.com. - walt_97468
Nimbostratus
is there a way to change this using irules? - hoolio
Cirrostratus
Hi waltrich, - walt_97468
Nimbostratus
We fuinally resolved this with an http profile set to rechunk, a stream profile that is actually doing the rewrite and the following irule as this is the only way we were able to rewrite the content in the redirect: - Colin_Walker_12Historic F5 AccountI'm glad you got it sorted out,and thanks much for sharing the final solution.
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects