Welcome! Log In Create A New Profile

Advanced

Re: rewrite to lowercase?

Vicente Aguilar
February 17, 2010 03:06AM
Hi

I managed to rewrite URLs to lowercase with the embedded perl module:

http {
...
perl_modules perl/lib;

perl_set $uri_lowercase 'sub {
my $r = shift;
my $uri = $r->uri;
$uri = lc($uri);
return $uri;
}';
...
}

server {
...

location / {
if ( $uri != $uri_lowercase ) {
rewrite . http://$host$uri_lowercase;
}
# or just:
# rewrite . $uri_lowercase;
}
...
}

The first option (with the if and http://$host) sends an HTTP redirect to the lowercase URL if the requested URL is not completely in lowercase. I like this approach better as it kind of normalizes all URL to a canonical form.. The second option (without if nor http://) just accepts any URL and internally rewrites them to lowercase: if you rename all your directories and files to lowercase, this will imitate Windows' case-insensitive behaviour.

Kudos to the following post were I draw the "inspiration" :D from to get this done. The embedded perl doc and examples are indeed scarce. :-(

http://forum.nginx.org/read.php?2,39425,39944

Anyway I see two problems in this approach:

- you need the embedded perl module which according to the docs is experimental and can lead to memory leaks.

- the actual redirection is done with the rewrite, which you can put on the location you need. But the URL lowercase calculation, being on the "http" section of the config, is done for each and every request arriving to your server. Say you have a virtual server with 10 domains and you only need this on one particular location of one of them. The lowercase URL is going to be calculated for every request of every domain.

I guess that by defining a perl function the URL calculation could be restricted to a particular location, have to look into it further. Another option is writing a C module.

Regards

El 01/02/2010, a las 06:27, arianna escribió:

> can it be done? need case insensitivity on ubuntu
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,48527,48527#msg-48527
>
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://nginx.org/mailman/listinfo/nginx


_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

rewrite to lowercase?

arianna February 01, 2010 12:27AM

Re: rewrite to lowercase?

Dennis J. February 01, 2010 08:32AM

Re: rewrite to lowercase?

Vicente Aguilar February 17, 2010 03:06AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 230
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready