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

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: 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?
Thank you in advance,
Robertof

Hello!

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

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
restrictions.


Maxim D.
http://nginx.org/en/donation.html

Hi, thanks for the fast answer!
Yes, I am using nginx on Windows and I didn’t know about that
restriction.
Since the project I’m working on requires that (damned!) final point, do
you know a way to overcome this restriction?
For example, I thought about cygwin but I’m not sure if it would work.

Thanks again,
Robertof

Il 22/05/2013 21:12, Maxim D. ha scritto:

Hello – just writing again to say that I did it! I found on the web
(just Google) a Cygwin build of nginx and it works perfectly.
Thanks for your support!
Robertof

Il 22/05/2013 21:12, Maxim D. ha scritto: