https://issues.apache.org/bugzilla/show_bug.cgi?id=48351
Summary: Ampersand taken to mean "what is matched by the
previous regex" - unexpected given the "perl color" of
regexes
Product: Apache httpd-2
Version: 2.0.54
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Core
AssignedTo: [email protected]
ReportedBy: [email protected]
If we take this sample:
RedirectMatch permanent ^/foo/?$
http://some.external.site/?var1=val1&var2=val2&var3=val3
and the URL entered is:
http://first.site/foo/
the redirect is to:
http://some.external.site/?var1=val1/foo/var2=val2/foo/var3=val3
Therefore, the & has extended to the whole text matched by the "left" regex,
just like it does with "classic dialect" regex engines such as sed and vi.
The same behavior has been observed with SetEnvIf and RewrireRule. Probably
other modules are affected as well.
This comes as quite a surprise given that Apache uses PCRE. I'd have expected
$& to work, but not a plain ampersand.
This is true of Apache 2.0.54 and also 2.2.9, installed by default on
Centos/RHEL 4.x and 5.x respectively. But this also holds true for the Apache
2.2.x coming with the latest Debian (I don't remember the exact version) and
Apache 2.2.14 on Gentoo.
For coherency, I'd say that $& should replace & for this purpose, to be more
inline with perl's regexes. But then it seems that Apache has behaved this way
for quite a while (since 2.0.x times at least, I don't know for 1.3) and this
change could break some setups...
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]