nginx-0.1.43 parser error

Igor Sysoev is at rambler-co.ru
Tue Sep 27 14:22:17 MSD 2005


On Tue, 27 Sep 2005, Alexander Gnevshev wrote:

> Igor Sysoev wrote:
>       On Thu, 22 Sep 2005, Alexander Gnevshev wrote:
> 
>             Чтобы:
>             - была возможность избавиться от страниц-дублей;
> 
> 
>       Где - на сайте или в ссылках ?
> 
> Везде. В том числе в поисковиках.

А что это даёт, кроме лишнего запроса клиенту ? Веб переделать нереально.
Ты считаешь, что если кто-то поставил ссылку /dir, а сервер выдал
на неё редирект /dir/, то этот кто-то озаботится исправлением этой ссылки
у себя ? Сильно сомневаюсь.

Что касается поисковиков, то они индексы обновляют регулярно, достаточно
исправить у себя.

>             - всегда твёрдо знать, что параметры URI в
>             location сравниваются напрямую с URI, пришедшим
>             от пользователя (без преобразований);
> 
> 
>       Ну, например, частный случай: /page.html и //page.html. Что
>       предлагается
>       делать со вторым ?
> 
> Оставлять как есть и обрабатывать все location как есть, даже если это
> вызовет 404.

А что делать /.././/./%2E%2E/../etc/passwd ?

>             - иметь полный контроль над URI, чтобы можно было
>             хотя бы в логе увидеть подобные запросы;
> 
> 
>       %request пишет в лог оригинальный URI.
> 
> Это значит, что при подсчёте статистики будет некоторая погрешность, так
> как никто никогда не делает обработку a-la shell для директорий в URI при
> обработке логов.

А вот это напрасно. Я в логах неоднократно видел /~user/ и /%7Euser/.

>             - не навязывать администраторам nginx парсинг URI
>             без возможности его отключения.
> 
> 
>       А как же URI обратывать, если его не парсить ? Как его потом
>       сравнивать с location ?
> 
> Под парсингом в данном случае я имел в виду автоматические замены для
> каталогов:
>  *  два и более слэша преобразуются в один слэш: "//" - "/";
>  *  убираются ссылки на текущий каталог: "/./" - "/";
>  *  убираются ссылки на предыдущий каталог: "/dir/../" - "/".
> Вообще в наше время считать, что URI является прямым отображением на
> директории на диске, -- прямая ошибка. Это уже давно не актуально. На
> большинстве крупных ресурсов URI внутри обрабатывается (переписывается
> rewrite и пр.) и с именем файла не совпадает.
> 
> Также очень интересен вариант, когда в URI передаётся параметр для
> редиректа на другой сайт (двойной слэш). Так тоже делают, но этот вариант
> не будет работать с nignx.
> 
> Именно поэтому очень хочется иметь возможность влиять на поведение nginx
> в этом вопросе.

Ну вот пусть бэкенд и разбирается со странными URI, возможность передать
в оригинальном виде есть.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list