Forum Discussion
Multiple URIs redirect to single URL
Dear Community Experts,
I need multiple URIs to be redirected to single URL. Please share iRule that will accomplish this requirement.
Following three URIs need to be redirected to https://abcdef.com
1: "en/good/morning.aspx"
2: "en/good/evening.aspx"
3: "en/good/night.aspx"
I already have an iRule which successfully redirects one URI to single URL, which is shown below.
===============
when HTTP_REQUEST {
if { [HTTP::uri] contains "en/good/morning.aspx" } {
HTTP::redirect "https://abcdef.com"
}
}
==============
Instead of creating three iRules and assigning to virtual server I need one iRule to be created & assigned to virtual server.
Kind Regards
There are multiple ways to achieve it but would suggest you to add two more conditions in existing iRule.
when HTTP_REQUEST { if { ([HTTP::uri] contains "en/good/morning.aspx") || ([HTTP::uri] contains "en/good/evening.aspx") || ([HTTP::uri] contains "en/good/night.aspx") } { HTTP::redirect "https://abcdef.com" } }
Cheers...
There are multiple ways to achieve it but would suggest you to add two more conditions in existing iRule.
when HTTP_REQUEST { if { ([HTTP::uri] contains "en/good/morning.aspx") || ([HTTP::uri] contains "en/good/evening.aspx") || ([HTTP::uri] contains "en/good/night.aspx") } { HTTP::redirect "https://abcdef.com" } }
Cheers...
There are multiple ways to achieve it but would suggest you to add two more conditions in existing iRule.
when HTTP_REQUEST { if { ([HTTP::uri] contains "en/good/morning.aspx") || ([HTTP::uri] contains "en/good/evening.aspx") || ([HTTP::uri] contains "en/good/night.aspx") } { HTTP::redirect "https://abcdef.com" } }
Cheers...
- iRule
Cirrus
Thank you so much, it worked for me.
Just my two cents on this one: HTTP::redirect always sends an HTTP 302 (Temporary Redirect) status code. If you want to send a different status code (like HTTP 301 (Permanent Redirect)) should use HTTP::respond instead.
If you use a 302 is used instead of a 301, search engines might continue to index the old URL, and disregard the new one as a duplicate.
- iRule
Cirrus
Hi Daniel,
Thank you for your input.
If I follow your piece of advice then the iRule will be similar to bellow for any future iRule that I create?
- when HTTP_REQUEST {
- if { ([HTTP::uri] contains "en/good/morning.aspx") || ([HTTP::uri] contains "en/good/evening.aspx") || ([HTTP::uri] contains "en/good/night.aspx") } {
- HTTP::respond "https://abcdef.com"
- }
- }
Hi iRule,
please refer to this documentation: https://clouddocs.f5.com/api/irules/HTTP__respond.html
I'd probably add is like this:
HTTP::respond 301 -version auto noserver Location "https://abcdef.com"
KR
Daniel
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