Re: забыл слэш в конце url получил сусанин-autoindex

itcod nginx-forum на nginx.us
Вт Июл 14 21:31:09 UTC 2015


Илья добрый день!
сорри за долгое молчание. прозевал ваш коментарий. отпуск:)

да я и решил задачу как написал, подменяя относительные пути полными. 

>> "во-первых, не совсем понятно, зачем нужны абсолютные пути."
Ситуация которую я решил таким методом описана в первом письме этой ветки
http://forum.nginx.org/read.php?21,258337,258337#msg-258337
А вкратце при отсутствии закрывающего слэша в uri, модуль автоиндекс
откусывает последнее значение после слэша, не считая его папкой и далее
относительные пути строит относительно папки верхнего уровня. Соответственно
все ссылки получаются битыми так как ведут в никуда. Поведение и у nginx и у
браузеров соответствует стандартам. А в результате получаем ошибку. И
единственный вариант соблюсти текущие стандарты и решить возникшую задачу, я
увидел в применении абсолютных путей в автоиндексе.

>>"autoindex это ведь для браузеров ?"
Не только для браузеров Илья.
Мне данное поведение автоиндекс, на запрос с отсутствующим слешем, очень
мешало в глюкавых-webdav-клиентах которые при get-запросах (это и чтение и
создание папок) не добавляют сами  закрывающий слэш если обращается к папке.
А таких imho сейчас пока 90% и в win и в android. 

И да! вы совершенно правы давая варианты когда вам потребовались полные
пути. мне подобный индексный файл нужен не только для визуально правильного
ручного функционирования и для толстых webdav-клиентов, а так же для
обращения JS-клиентов(сайтов) к индексному файлу для получения точных
указателей на размещаемый файл и его контрольная сумма(хэш) (делаю для
планируемого JS WEBDAV UI c пакетным контролем хэшей).

"абсолютные ссылки это головная боль"
Вероятно так оно и есть. Зато я избавился от текущей "боли", на тот момент,
которая мне очень мешала работать дальше над проектом.

"(если есть proxy_pass куда-то и есть терминация https на nginx)"
Илья у меня рабочий nginx как раз сидит за proxy_pass nginx... полёт
нормальный
А терминация на https это что? у меня подставляет тот протокол по которому
прилетел запрос. 
Прилетел http будет http в абсолютных путях. прилетит https - будет https. 
И имя сервера подставляется к которому обратились. может я Вас не правильно
понял?

В общем протачивал эту програмку как составляющую проекта лёгкого
многопользовательского webdav-диска на основе nginx. 


>> autoindex это ведь для браузеров ? так в чем проблема, отдайте им
относительные ссылки.
Эх.... пусть я буду единственным всемирным чайником который забывает URL
подпирать сзади палкой:)))))

PS: Спасибо на добром слове.

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



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