Forum Discussion
Stacy_Lanier_53
Nimbostratus
Jul 28, 2008301 Redirect
I am trying to throw a URL redirect for a specific UserAgents in a file when a specific URL is entered by the user.
when HTTP_REQUEST {
if { ([matchclass [HTTP::header value User-Agent] equals $::user_agents]) and \
[HTTP::uri] equals "http://internalURL/www.craigslist.org"}
HTTP::respond 301 Location "http://www.craigslist.org[HTTP::uri]"
}
Can anyone see what I am doing wrong?
Thanks
6 Replies
- Nicolas_Menant
Employee
Hi,
You forgot a brace, You may need to be careful about uppercase and lower case.
So for example it may be best to do:when HTTP_REQUEST { if { ([matchclass [string tolower [[HTTP::header value User-Agent]] equals $::user_agents]) and ([string tolower[HTTP::uri]] equals "http://internalurl/www.craigslist.org")} { HTTP::respond 301 Location "http://www.craigslist.org[HTTP::uri]" }
You need then to have only lower case character in your user-agent class - Stacy_Lanier_53
Nimbostratus
I am getting the following error now if you might know what's wrong.
line 1: [parse error: missing close-brace] [{
line 2: [command is not valid in the current scope] [if { ([matchclass [string tolower [[HTTP::header value User-Agent]] equals $::user_agents]) and ([string tolower[HTTP::uri]] equals "http://internalurl/www.craigslist.org")} { - Nicolas_Menant
Employee
My Mistake it misses a closing bracewhen HTTP_REQUEST { if { ([matchclass [string tolower [HTTP::header value User-Agent]] equals $::user_agents]) and ([string tolower[HTTP::uri]] equals "http://internalurl/www.craigslist.org")} { log local0. "Match done" HTTP::respond 301 Location "http://www.craigslist.org[HTTP::uri]" } }
Update: one bracket was incorrect in your code i missed it - Nicolas_Menant
Employee
Code updated again - Stacy_Lanier_53
Nimbostratus
I appreciate your help and got one more error
line 2: [parse error: PARSE quoteExtra 199 {extra characters after close-quote}] [{ ([matchclass [string tolower [[HTTP::header value User-Agent]] equals $::user_agents]) and ([string tolower[HTTP::uri]] equals "http://internalurl/www.craigslist.org")}] - Nicolas_Menant
Employee
Hi,
You should try the iRule editor it would save a lot of syntax issue.
Here is one you should be able to copy/pastewhen HTTP_REQUEST { if { ([matchclass [string tolower [HTTP::header "User-Agent"]] equals $::user_agents]) and ([string tolower [HTTP::uri]] equals "http://internalurl/www.craigslist.org")} { log local0. "Match done" HTTP::respond 301 Location "http://www.craigslist.org[HTTP::uri]" } }
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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