Problem with rewrite regexes when the URL contains a trailing slash (nginx-1.5.0)

Maxim Dounin mdounin at
Wed May 22 19:12:40 UTC 2013


On Wed, May 22, 2013 at 08:40:43PM +0200, Roberto F. wrote:

> Hello.
> 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:, 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 

Maxim Dounin

More information about the nginx mailing list