Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How i can translate uppercase to lowercase letters in a rewrite rule in nginx web server?

I need to translate the address:

www.example.com/TEST in ---> www.example.com/test

like image 942
Peak Avatar asked Sep 08 '10 08:09

Peak


1 Answers

Yes, you are going to need perl. If you are using Ubuntu, instead of apt-get install nginx-full, use apt-get install nginx-extras, which will have the embedded perl module. Then, in your configuration file:

  http {   ...     # Include the perl module     perl_modules perl/lib;     ...     # Define this function     perl_set $uri_lowercase 'sub {       my $r = shift;       my $uri = $r->uri;       $uri = lc($uri);       return $uri;     }';     ...     server {     ...       # As your first location entry, tell nginx to rewrite your uri,       # if the path contains uppercase characters       location ~ [A-Z] {         rewrite ^(.*)$ $scheme://$host$uri_lowercase;       }     ... 
like image 116
Thiago Ganzarolli Avatar answered Oct 11 '22 08:10

Thiago Ganzarolli