ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lower case URL



Если кому-то интересно, то можно сделать следующим образом. Делается локейшн для файлов в нижнем регистре, например:
                 location  ^.+\.(css|js|jpg|jpeg|gif|png|zip|rar|tgz|gz|bz2|cab|mp3|swf|pdf|ico|xls|doc|ppt|txt)$ {
                   root /path/to/file;
                 }

Дальше делается локейшн для "трудных файлов":

               location ~* /loc {
                    rewrite_by_lua '
                        local uri = string.lower(ngx.var.uri)
                        ngx.req.set_uri(uri,false)
                    ';
               }

Признаюсь честно, я пока не понял, как сделать логирование этих запросов, но если спросить урл вида http://domain.com/lOc/File.txt, то отдается http://domain.com/loc/file.txt. Хотя урл в строке адресной не меняется.




31 октября 2011 г. 13:00 пользователь Anton Kiryushkin <swood@xxxxxxxxxxx> написал:
А пользует кто-нибудь для этой задачи lua? Я вот пытаюсь так:
location /loc {
   rewrite_by_lua '
         uri = string.lower(ngx.var.uri)
   ';
}

Но что-то пока что оно работать не хочет. Может кто-то поделится каким-нибудь рабочим примером.

PS. опция set_by_lua у меня работать отказывается. Версия nginx 1.0.5. 
В логе отладки при этом вижу следующее:

2011/10/31 12:04:16 [debug] 74778#0: *1 http cl:-1 max:1048576
2011/10/31 12:04:16 [debug] 74778#0: *1 rewrite phase: 3
2011/10/31 12:04:16 [debug] 74778#0: *1 lua rewrite handler, uri "/loc/file.txT"
2011/10/31 12:04:16 [debug] 74778#0: *1 rewrite phase: 3
2011/10/31 12:04:16 [debug] 74778#0: *1 rewrite phase: 4
2011/10/31 12:04:16 [debug] 74778#0: *1 lua rewrite handler, uri "/loc/file.txT"
2011/10/31 12:04:16 [debug] 74778#0: *1 post rewrite phase: 5
2011/10/31 12:04:16 [debug] 74778#0: *1 generic phase: 6
2011/10/31 12:04:16 [debug] 74778#0: *1 generic phase: 7
2011/10/31 12:04:16 [debug] 74778#0: *1 generic phase: 8
2011/10/31 12:04:16 [debug] 74778#0: *1 access phase: 9
2011/10/31 12:04:16 [debug] 74778#0: *1 access phase: 10
2011/10/31 12:04:16 [debug] 74778#0: *1 post access phase: 11
2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 12
2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 13
2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 14
2011/10/31 12:04:16 [debug] 74778#0: *1 http filename: "/path/to/loc/file.txT.gz"
2011/10/31 12:04:16 [debug] 74778#0: *1 add cleanup: 2838560C
2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 15
2011/10/31 12:04:16 [debug] 74778#0: *1 http filename: " /path/to/loc/file.txT"
2011/10/31 12:04:16 [debug] 74778#0: *1 add cleanup: 28385644

При этом сам файл /loc/file.txt есть. Но назван в нижнем регистре.

30 октября 2011 г. 11:43 пользователь anon <nginx-forum@xxxxxxxx> написал:

Gena Makhomed Wrote:
-------------------------------------------------------
> On 11.10.2011 15:20, Andrey Repin wrote:
>
> > a>  Все же это  наши
> проблемы, наша
> > a>  посещаемость и т.д. И
> научить всех людей
> > a>  из интернетов делать
> правильно не
> > a>  получится. Лучше уж один
> раз настроить
> > a>  у себя и забыть
>
> > Есть стандарт. Стандарт
> чётко указывает, что
> регистр символов в URL имеет
> > значение.
> > Повесьте скрипт на ошибку
> 404 с сообщением о
> некорректной ссылке и
> > предложением перейти на
> ближайший подходящий URL.
> > Людей надо учить, а не
> нагружать машины
> бессмысленной работой.
>
> Машины должны работать.
> Люди должны думать. (Девиз
> компании IBM)
>
> лучше все-таки скриптом на
> backend`е выдавать 301 редирект
> на верный адрес, - в этом
> случае браузеры обновят
> свои закладки
> автоматически, да и
> поисковые машины правильно
> все поймут тоже.
>
> у апача был/есть подходящий
> модуль на эту тему: mod_speling
> чтобы можно было не
> показывать 404 ошибки в
> таких случаях.
>
> --
> Best regards,
>   Gena
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Gena,
К сожалению или к счастью, но заменил
апач на php-fpm на бекенде. Что бы в таком
варианте, еще можно было придумать?

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

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
Best regards,
Anton Kiryushkin,
 



--
Best regards,
Anton Kiryushkin,
 
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.