Forum Discussion
Need to redirect complete URL into redirected uri
- Jan 19, 2023
ashk If your intent is to redirect anything going to www.abc.com with any URI path starting with "/find/redirect/" the following should work for you.
when CLIENT_ACCEPTED priority 500 { set DEFAULT_POOL [LB::server pool] } when HTTP_REQUEST priority 500 { set HOST [string tolower [HTTP::host]] set URI [string tolower [HTTP::uri]] if { ${HOST} == "www.abc.com" } { if { ${URI} starts_with "/find/redirect/" } { HTTP::respond 301 Location "https://www.xyz.com/found/redirect?url=https://$HOST$URI" } } else { $DEFAULT_POOL } }
Now if you want to redirect anything that connects to www.abc.com to www.xyz.com/found/redirect?url=https:// <old_path> the following should do the job.
when CLIENT_ACCEPTED priority 500 { set DEFAULT_POOL [LB::server pool] } when HTTP_REQUEST priority 500 { set HOST [string tolower [HTTP::host]] set URI [string tolower [HTTP::uri]] if { ${HOST} == "www.abc.com" } { HTTP::respond 301 Location "https://www.xyz.com/found/redirect?url=https://$HOST$URI" } else { $DEFAULT_POOL } }
If I am missunderstanding the request please provide a real world example of one of the requests or rewording the question so we can have a different approach to the issue at hand.
Hello Paulius,
Thank you for the rule, I see its working with the URI only when its "/find/redirect".
it is not working when I use "*" if { ${URI} == "/find/redirect/*" }
i tried starts with but syntax error. How to ger all the query string in path which starts with /find/redirect/XXXX/xXXx/XXX/XX something like this.
Appreciate your help.
- PauliusJan 19, 2023MVP
ashk If your intent is to redirect anything going to www.abc.com with any URI path starting with "/find/redirect/" the following should work for you.
when CLIENT_ACCEPTED priority 500 { set DEFAULT_POOL [LB::server pool] } when HTTP_REQUEST priority 500 { set HOST [string tolower [HTTP::host]] set URI [string tolower [HTTP::uri]] if { ${HOST} == "www.abc.com" } { if { ${URI} starts_with "/find/redirect/" } { HTTP::respond 301 Location "https://www.xyz.com/found/redirect?url=https://$HOST$URI" } } else { $DEFAULT_POOL } }
Now if you want to redirect anything that connects to www.abc.com to www.xyz.com/found/redirect?url=https:// <old_path> the following should do the job.
when CLIENT_ACCEPTED priority 500 { set DEFAULT_POOL [LB::server pool] } when HTTP_REQUEST priority 500 { set HOST [string tolower [HTTP::host]] set URI [string tolower [HTTP::uri]] if { ${HOST} == "www.abc.com" } { HTTP::respond 301 Location "https://www.xyz.com/found/redirect?url=https://$HOST$URI" } else { $DEFAULT_POOL } }
If I am missunderstanding the request please provide a real world example of one of the requests or rewording the question so we can have a different approach to the issue at hand.
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