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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Roberto F. (Guest)
on 2013-05-22 20:41
(Received via mailing list)
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
Maxim Dounin (Guest)
on 2013-05-22 21:12
(Received via mailing list)
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 Dounin
http://nginx.org/en/donation.html
Roberto F. (Guest)
on 2013-05-22 21:18
(Received via mailing list)
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 Dounin ha scritto:
Roberto F. (Guest)
on 2013-05-22 23:17
(Received via mailing list)
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 Dounin ha scritto:
This topic is locked and can not be replied to.