Problem with rewrite regexes when the URL contains a trailing slash (nginx-1.5.0)
mdounin at mdounin.ru
Wed May 22 19:12:40 UTC 2013
On Wed, May 22, 2013 at 08:40:43PM +0200, Roberto F. wrote:
> I'm having a problem with nginx's rewrite directive.
> Basically, when the URL contains a trailing point, it is ignored by
> the rewrite regexp.
> Let's do an example:
> I load http://uri/something. (with the trailing point). Then, with
> the rewrite rule:
> rewrite ^/something\.$ /index.html
> I should see 'index.html', but instead that appears in the logfile
> (with rewrite_log set at on):
> 2013/05/22 20:36:07 [notice] 6256#1440: *57 "^/something\.$" does
> not match "/something", client: 127.0.0.1, server: localhost,
> request: "GET /something. HTTP/1.1", host: "localhost"
> As you can see, the trailing point is missing from the "does not
> match" part of the log.
> Is there any workaround for that?
Are you using nginx/Windows? On Windows trailing dots and spaces
in URIs are ignored as they aren't significant from filesystem
point of view and otherwise can be used to bypass access
More information about the nginx