Welcome! Log In Create A New Profile

Advanced

Re: lower case URL

Anton Kiryushkin
October 31, 2011 07:40AM
Если кому-то интересно, то можно сделать следующим образом. Делается
локейшн для файлов в нижнем регистре, например:
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@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@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@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@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
>
> --
> Best regards,
> Anton Kiryushkin,
>
>



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

lower case URL

anon October 09, 2011 06:00PM

Re: lower case URL

Gena Makhomed October 10, 2011 06:52AM

Re: lower case URL

anon October 10, 2011 08:23AM

Re[2]: lower case URL

Andrey Repin October 10, 2011 01:06PM

Re: Re[2]: lower case URL

anon October 11, 2011 07:29AM

Re[4]: lower case URL

Andrey Repin October 11, 2011 08:36AM

Re: lower case URL

Gena Makhomed October 11, 2011 08:52AM

Re: lower case URL

anon October 30, 2011 03:43AM

Re: lower case URL

Anton Kiryushkin October 31, 2011 05:02AM

Re: lower case URL

Anton Kiryushkin October 31, 2011 07:40AM

Re[2]: lower case URL

Andrey Repin November 01, 2011 02:36PM

Re: lower case URL

Anton Kiryushkin November 01, 2011 11:30PM

Re: lower case URL

Anton Kiryushkin November 01, 2011 11:58PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 313
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