httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <traw...@gmail.com>
Subject Re: [users@httpd] (36)File name too long
Date Wed, 17 Sep 2014 17:04:43 GMT
On Wed, Sep 17, 2014 at 12:52 PM, Rich Bowen <rbowen@rcbowen.com> wrote:

>
> On 09/16/2014 02:50 PM, mmccarthy@tribloom.com wrote:
>
>> I am using RewriteRule and the proxy flag to proxy through Apache. When a
>> long URL is passed through (longer than 255 characters), I get the error
>> below (redacted). I understand that this is related to the maximum file
>> name on the OS, in this case Ubuntu 14.04. My question is why is this
>> happening when the URL is not related to a file on the file system? The URL
>> is rewritten, then proxied to another server that works fine with long URLs.
>>
>> [Mon Sep 15 11:42:04.211290 2014] [core:error] [pid 18302:tid
>> 140171735451392] (36)File name too long: [client xxx.xx.x.xxx:53717]
>> AH00036: access to /<long file path>/_aliases failed (filesystem path
>> '/<long file path>), referer: http://xx.xx.xx.xxx/index.html
>>
>> Thanks,
>>
>
> That error message doesn't appear to be from the httpd server itself (ie,
> that message doesn't appear anywhere in the source code for trunk, 2.4,
> 2.2, or 2.0),


When you see "ANnnnnn", it is httpd >= 2.4, and you should just grep for
the nnnnn part:

./server/request.c:                ap_log_rerror(APLOG_MARK, APLOG_ERR, rv,
r, APLOGNO(00036)
./server/request.c-                              "access to %s failed
(filesystem path '%s')",
./server/request.c-                              r->uri, r->filename);




> which leads me to believe that 1) it's in fact from your filesystem, and
> 2) there's no direct way to fix that in httpd configuration.
>
> As thy why it matters when the file isn't on the filesystem, that's hard
> to tell without more context, but I presume that at some point in the
> process it is *looking* for the file in the filesystem.
>
> For example, if this RewriteRule is in a .htaccess file, rather than in
> the main server config, it did in fact have to navigate to a filesystem
> directory before consulting that .htaccess file.
>
>
The decision to proxy via rewrite is being made too late in request
processing for mod_proxy to prevent httpd looking for a file on disk to
match the request, resulting in this issue.

If there is a way to configure mod_proxy to handle the request (i.e., using
mod_proxy directives), the filesystem check will be bypassed.

-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Mime
View raw message