On Wed, Sep 17, 2014 at 12:52 PM, Rich Bowen <[email protected]> wrote:
> > On 09/16/2014 02:50 PM, [email protected] 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/
