https://bz.apache.org/bugzilla/show_bug.cgi?id=64117
Bug ID: 64117
Summary: Apache is not logging original URL %<U or original
query %<q when using RewriteEngine
Product: Apache httpd-2
Version: 2.4.41
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: mod_log_config
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Hello,
when using RewriteEngine it seems that the original URL path of the request
(%<U) is not logged.
Tested on apache 2.4.6 present in RHEL7 and 2.4.41 in Fedora 31.
No matter if I use %U or %<U or %>U in the LogFormat, the output written to the
log file is always containing the url after rewriting. Same applies for the
query string (%q %<q %>q).
According the documentation
http://httpd.apache.org/docs/current/mod/mod_log_config.html it should be
possible to use "<" and ">" modifiers to distinguish between original and final
value, but it doesn't work for %<U and %<q when using the RewriteEngine. The
only formatting string which holds the original URL seems to be %r.
For example having application, which redirects all URL and query parameters to
handler index.php :
RewriteEngine On # Turn on the rewriting engine
#===== Pass requests for nonexisting files to index.php
RewriteCond "/var/www/html/%{REQUEST_FILENAME}" !-f
RewriteRule "(.*)" "/index.php?path=$1" [PT,QSA]
So user requesting http://test.com/hello/world?param1=value1 will be actually
processed by http://test.com/index.ph?path=/hello/world¶m1=value1
I would like to log Custom log with the original URL, but it doesn't work ...
for example:
LogFormat "%h %l %u %t \"%m http://%{Host}i%<U%<q %H\" %>s %b" common_full_url
Best regards
Michal Ambroz
--
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]