Если кому-то интересно, то можно сделать следующим образом. Делается локейшн для файлов в нижнем регистре, например:<div><div> location ^.+\.(css|js|jpg|jpeg|gif|png|zip|rar|tgz|gz|bz2|cab|mp3|swf|pdf|ico|xls|doc|ppt|txt)$ {</div>
<div> root /path/to/file;</div><div> }</div><div><br></div><div>Дальше делается локейшн для "трудных файлов":</div><div><br></div><div><div> location ~* /loc {</div>
<div> rewrite_by_lua '</div><div> local uri = string.lower(ngx.var.uri)</div><div> ngx.req.set_uri(uri,false)</div><div> ';</div>
<div> }</div></div><div><br></div><div>Признаюсь честно, я пока не понял, как сделать логирование этих запросов, но если спросить урл вида <a href="http://domain.com/lOc/File.txt">http://domain.com/lOc/File.txt</a>, то отдается <a href="http://domain.com/loc/file.txt">http://domain.com/loc/file.txt</a>. Хотя урл в строке адресной не меняется.</div>
<div><br></div><div><br></div><div><br></div><br><div class="gmail_quote">31 октября 2011 г. 13:00 пользователь Anton Kiryushkin <span dir="ltr"><<a href="mailto:swood@fotofor.biz">swood@fotofor.biz</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">А пользует кто-нибудь для этой задачи lua? Я вот пытаюсь так:<div>location /loc {</div><div> rewrite_by_lua '</div>
<div> uri = string.lower(ngx.var.uri)</div><div> ';</div><div>}</div><div><br></div><div>
Но что-то пока что оно работать не хочет. Может кто-то поделится каким-нибудь рабочим примером.</div><div><br></div><div>PS. опция set_by_lua у меня работать отказывается. Версия nginx 1.0.5. </div><div>В логе отладки при этом вижу следующее:</div>
<div><br></div><div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 http cl:-1 max:1048576</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 rewrite phase: 3</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 lua rewrite handler, uri "/loc/file.txT"</div>
<div>2011/10/31 12:04:16 [debug] 74778#0: *1 rewrite phase: 3</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 rewrite phase: 4</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 lua rewrite handler, uri "/loc/file.txT"</div>
<div>2011/10/31 12:04:16 [debug] 74778#0: *1 post rewrite phase: 5</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 generic phase: 6</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 generic phase: 7</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 generic phase: 8</div>
<div>2011/10/31 12:04:16 [debug] 74778#0: *1 access phase: 9</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 access phase: 10</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 post access phase: 11</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 12</div>
<div>2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 13</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 14</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 http filename: "/path/to/loc/file.txT.gz"</div>
<div>2011/10/31 12:04:16 [debug] 74778#0: *1 add cleanup: 2838560C</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 content phase: 15</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 http filename: "
/path/to/loc/file.txT"</div><div>2011/10/31 12:04:16 [debug] 74778#0: *1 add cleanup: 28385644</div><div><br></div><div>При этом сам файл /loc/file.txt есть. Но назван в нижнем регистре.</div><br><div class="gmail_quote">
30 октября 2011 г. 11:43 пользователь anon <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> написал:<div><div></div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Gena Makhomed Wrote:<br>
-------------------------------------------------------<br>
<div><div></div><div>> On 11.10.2011 15:20, Andrey Repin wrote:<br>
><br>
> > a> Все же это наши<br>
> проблемы, наша<br>
> > a> посещаемость и т.д. И<br>
> научить всех людей<br>
> > a> из интернетов делать<br>
> правильно не<br>
> > a> получится. Лучше уж один<br>
> раз настроить<br>
> > a> у себя и забыть<br>
><br>
> > Есть стандарт. Стандарт<br>
> чётко указывает, что<br>
> регистр символов в URL имеет<br>
> > значение.<br>
> > Повесьте скрипт на ошибку<br>
> 404 с сообщением о<br>
> некорректной ссылке и<br>
> > предложением перейти на<br>
> ближайший подходящий URL.<br>
> > Людей надо учить, а не<br>
> нагружать машины<br>
> бессмысленной работой.<br>
><br>
> Машины должны работать.<br>
> Люди должны думать. (Девиз<br>
> компании IBM)<br>
><br>
> лучше все-таки скриптом на<br>
> backend`е выдавать 301 редирект<br>
> на верный адрес, - в этом<br>
> случае браузеры обновят<br>
> свои закладки<br>
> автоматически, да и<br>
> поисковые машины правильно<br>
> все поймут тоже.<br>
><br>
> у апача был/есть подходящий<br>
> модуль на эту тему: mod_speling<br>
> чтобы можно было не<br>
> показывать 404 ошибки в<br>
> таких случаях.<br>
><br>
> --<br>
> Best regards,<br>
> Gena<br>
><br>
> _______________________________________________<br>
> nginx-ru mailing list<br>
> <a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
<br>
</div></div>Gena,<br>
К сожалению или к счастью, но заменил<br>
апач на php-fpm на бекенде. Что бы в таком<br>
варианте, еще можно было придумать?<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?21,216443,217539#msg-217539" target="_blank">http://forum.nginx.org/read.php?21,216443,217539#msg-217539</a><br>
<div><div></div><div><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></div></blockquote></div></div></div><font color="#888888"><br><br clear="all"><div>
<br></div>-- <br>Best regards,<br>
Anton Kiryushkin,<br> <br>
</font></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Best regards,<br>Anton Kiryushkin,<br> <br>
</div>