perl set: значение $uri при включенном index

Budulayj nginx-forum на nginx.us
Вс Май 13 16:14:10 UTC 2012


Добрый день.

Пытаюсь использовать perl_set для
принудительного перевода всех ссылок в
нижний регистр. При включенной
директиве index значение переменной $uri в
блоке perl_set не соответствует значению
$uri после применения index. То есть при
открытии "корневой" страницы
начинается "вечный" редирект. Вывел
значение переменных $uri и $uri_lowercase в лог -
$uri определяется как /index.html, $uri_lowercase как
/. Так и должно быть?

На всякий случай, конфиги такие:
http {
...
perl_set $uri_lowercase 'sub {
    		my $r = shift;
    		my $newuri = $r->uri;		
    		$newuri = lc($newuri);
    		return $newuri;
  	}';
...
}

server {
...
index index.html index.htm;
...
location / {
if ( $uri != $uri_lowercase ) {
rewrite . http://$host$uri_lowercase;
}
...
}

Версия nginx: nginx/1.2.0, ОС Debian 6.

Спасибо.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,226373,226373#msg-226373



Подробная информация о списке рассылки nginx-ru