lower case URL

Anton Kiryushkin swood на fotofor.biz
Пн Окт 31 11:38:47 UTC 2011


Если кому-то интересно, то можно сделать следующим образом. Делается
локейшн для файлов в нижнем регистре, например:
                 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 at fotofor.biz>написал:

> А пользует кто-нибудь для этой задачи 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 at nginx.us> написал:
>
> 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 at nginx.org
>> > 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 at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
>
> --
> Best regards,
> Anton Kiryushkin,
>
>



-- 
Best regards,
Anton Kiryushkin,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20111031/c0d90666/attachment.html>


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