20-Jan-2020 05:57
Hello All,
I have created an irule for an URI redirection and the expected flow as below:
1- Client to LB : https://www.domain1.com/resource1
2- LB to Client: Permanent URI redirection to an other URI value >> https://https://www.domain1.com/resource2
3- Client to LB: accessing the resource using the new URI >> https://https://www.domain1.com/resource2
Could you please look into the below script and correct if I would have missed anything and suggest me is there anyway I can do it better?
===========================================
when HTTP_REQUEST {
set NEW_URI "resource2"
switch -glob [string tolower [HTTP::uri]]
"/resource1"
{
HTTP::respond 301 Location "https://[HTTP::host][HTTP::uri]$NEW_URI"
}
}
============================================
Regards,
Thiyagu
20-Jan-2020 09:26
Try this:
when HTTP_REQUEST {
set NEW_URI "/resource2"
switch -glob [string tolower [HTTP::uri]]
"/resource1"
{
HTTP::respond 301 Location "https://[HTTP::host]$NEW_URI"
}
}
21-Jan-2020 01:36
Thanks Leonorodo for helping me. For some reason these irule are not working as expected while executing the traffic flow:
==============================irule 2========To replace the URI to the server
when HTTP_REQUEST {
if {[string tolower [HTTP::uri]] starts_with "/resource1"}{
set newuri [string map -nocase {"/provision" "resource2"}[HTTP::uri]]
HTTP::uri $newuri
pool POOL1
}
}
====================================
===============irule 3================To redirect back to the client with an new URI value for further communications
===================================
when HTTP_REQUEST {
set NEW_URI "/resource2"
switch -glob [string tolower [HTTP::uri]] {
"/resource1" {
HTTP::redirect 301 "https://[HTTP::host]$NEW_URI"
}
}
}
=========================================
Could you please help me to fix the issue?
Regards,
Thiyagu
21-Jan-2020 05:24
Can you define what is not working. Hows the flow going to and fro and what is being seen and what are you expecting. The above shared should do the trick unless something is rewriting it and goes unexpected.
21-Jan-2020 06:50
Hi Jaikumar,
The expected goal is as below:
Option 1:
From client to LB:
https://www.domain1.com/resource1
From LB to the server:
https://www.domain1.com/resource2
If the above option is difficult to achieve it then we can try for the below option:
Option2:
From client to LB:
https://www.domain1.com/resource1
From LB to the client with redirection 301:
https://www.domain1.com/resource2
I have tried irule for both the option and the results are as below:
Option 1: all the URI values are replaced with the value of /resource2
Option2: I'm getting blank page
Could you please help me to identify if i'm missing something to meet my objective?
Regards,
Thiyagu
21-Jan-2020 15:22
"Option 1: all the URI values are replaced with the value of /resource2"
You mean the query string? or there are also more folders?
Do you the client to be redirect, or juts change the URL on the way to the server?
21-Jan-2020 19:39
Thanks Leonardo. Chaging the URI to the server can also help me to fix the issue.
Regards,
Thiyagu
22-Jan-2020 14:48
"Option 1: all the URI values are replaced with the value of /resource2"
You mean the query string? or there are also more folders?