> Thanks for your response. I get the following error message:
> RewriteCond: unknown flag 'E'
That's because the E flag is only valid on a RewriteRule statement, not
RewriteCond. The mod_rewrite docs show this.
So, in order to store a match result in an environment variable, you have
to use a degenerate RewriteRule statement, that matches everything and
rewrites nothing, but sets an environment variable:
RewriteRule .* - [E=calID:%1]
.* = match everything
- = rewrite nothing
E = set an environment variable
(I warned you it wasn't pretty.) The RewriteRule documentation explains
these things.
Here's an annotated version of what I wrote before:
# Store value of the calId field, if present
RewriteCond %{QUERY_STRING} calId=([0-9]+) [NC]
RewriteRule .* - [E=calId:%1]
# Store value of the skinId field, if present
RewriteCond %{QUERY_STRING} skinId=([0-9]+) [NC]
RewriteRule .* - [E=skinId:%1]
# If both the calId and skinId fields are present, and XSL=NONE is not...
RewriteCond %{QUERY_STRING} !XSL=NONE [NC]
RewriteCond %{calId} .
RewriteCond %{skinId} .
# ... then rewrite:
RewriteRule ^/calendar
http://test.webservices.illinois.edu/calendar/list/%{calId}?skinId=%{skinId}
[L]
Try this and see if it works for you.
Andrew.
> What I used:
> RewriteCond %{QUERY_STRING} !XSL=NONE [NC]
> RewriteCond %{QUERY_STRING} calId=([0-9]+) [E=CALID:%1]
> RewriteCond %{QUERY_STRING} skinId=([0-9]+) [E=SKINID:%1]
> RewriteRule ^/calendar/list
> http://test.webservices.illinois.edu/calendar/list/%{CALID}?skinId=%{SKI
> NID} [L]
>
>
>
> Thanks,
>
> Lance Campbell
> Software Architect/DBA/Project Manager
> Web Services at Public Affairs
> 217-333-0382
>
>
> -----Original Message-----
> From: Andrew Schulman [mailto:[email protected]]
> Sent: Tuesday, December 21, 2010 9:41 AM
> To: [email protected]
> Subject: [us...@httpd] Re: RewriteCond how to set variable
>
> > I have the following RewriteCond. I put numbers in front of each line
> > for reference:
> >
> > 1) RewriteCond %{QUERY_STRING} !XSL=NONE [NC]
> >
> > 2) RewriteCond %{QUERY_STRING} calId=([0-9]+) [NC]
> >
> > 3) RewriteCond %{QUERY_STRING} skinId=([0-9]+) [NC]
> >
> > 4) RewriteRule ^/calendar
> > http://test.webservices.illinois.edu/calendar/list/%1?skinId=%2
> > <http://test.webservices.illinois.edu/calendar/list/%251?skinId=%252>
> > [L]
> >
> > I just learned that when you use %1 and %2 in line 4 it will only
> > reference the last RewriteCond. So in line 4 the %1 comes from line 3
> > but the %2 is blank. I actually wanted the values from line 2 & 3 to
> be
> > inserted into line 4.
> >
> > How do you set a local variable in line 2 and 3 so that in line 4 I
> can
> > reference them?
>
> This isn't too pretty.
>
> RewriteCond %{QUERY_STRING} calId=([0-9]+) [NC]
> RewriteRule .* - [E=calId:%1]
>
> RewriteCond %{QUERY_STRING} skinId=([0-9]+) [NC]
> RewriteRule .* - [E=skinId:%1]
>
> RewriteCond %{QUERY_STRING} !XSL=NONE [NC]
> RewriteCond %{calId} .
> RewriteCond %{skinId} .
> RewriteRule ^/calendar
> http://test.webservices.illinois.edu/calendar/list/%{calId}?skinId=%{ski
> nId}
> [L]
>
> (I'm not sure if your original RewriteRule came through correctly - I
> think
> I've interpreted it right.)
>
> I'm not 100% sure about the use of %{calId} and %{skinId} in the
> substitution string of the RewriteRule. I think it's right, but try it.
>
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server
> Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: [email protected]
> " from the digest: [email protected]
> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: [email protected]
> " from the digest: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [email protected]
" from the digest: [email protected]
For additional commands, e-mail: [email protected]