Хотелось бы получить комментарии разработчиков на такой момент:
в конфиге движка адрес сайта прописан так:
$config['path']['root']['url'] = 'http://'. $_SERVER['HTTP_HOST'] . '/'; // полный WEB адрес сайта
В результате, почти любая страница имеет адрес: site.ru//page, аналогично, после разлогинивания на сайте получаем редирект на главную, которая имеет адрес — site.ru//
Думаю, что наличие 2-х слешей вместо одного не есть правильно, поэтому я убрал в конфиге этот последний слеш (кстати, в LS его нет) и все стало нормально, но вот иногда все таки пробивает — залогиниваясь на странице, отличной от index, иногда слеш вообще не подставляется в адрес. Например, не залогинен, нахожусь на странице site.ru/page/1, жму залогиниться и после этого меня уже, как залогиненого перебрасывает на site.rupage/1
Нет времени искать ссылку на первоисточник, но, согласно правилам формирования URL, ссылки на папки/директории должны оканчиваться слешем. Если слеша нет, но считается что URL указывает на файл:
site.com/abc/ — ссылка на папку /abc/
site.com/abc.txt/ — ссылка на папку /abc.txt/
site.com/abc — ссылка на файл /abc
site.com/abc.txt — ссылка на файл /abct.xt
Конечно, это правило соблюдается далеко не всеми и далеко не всегда, поэтому современные веб-сервера учитывают это разгильдяйство сайтописателей, и если получают запрос на URL без слеша на конце, то сначала сервер смотрит — есть ли такой файл. Если есть — отдает его, если нет, то редиректит запрос на точно такой же URL, но со слешем на конце.
Более того, где-то встречал рассуждения, что если используются ссылки без слеша на конце, то по факту браузер шлет два запроса на сайт, сначала оригинальный, а потом — со слешем, и сервер, соответственно, в итоге обрабатывает два запроса вместо одного.
Итого — мое глубокое убеждение, что ссылки на папки (или «псевдопапки», как в LS, в Alto и других MVC-движках) должны заканчиваться слешем.
Двойной слеш, который иногда наблюдается, это побочный эффект от «наследства» LiveStreet'а. От него, разумеется, нужно избавляться (и мы избавляемся), но не удалением слеша в путях, а правкой шаблонов.
Насколько я понимаю ссылка такого вида: "/page/" не должна вызывать такой проблемы…
Напр., если в шаблоне задать {router page='page'}about/, то получим ссылку site.com/page/about/, а если так: {router page='page'}/about/, то получим ссылку с двойным слешем: site.com/page//about/.
Или если в шаблоне будет {cfg name='path.root.url'}/dir/, то опять получим двойной слеш: site.com//dir/
В общем, смотреть нужно. Впрочем, не исключаю, что и в движке где-то еще может остаться не совсем корректное формирование URL, приводящее к двойным слешам
Из-за чего этот эффект?
т.е. папка с изображениями отделяется с обеих сторон двойными слешами (а, например картинки модулей здесь в правом блоке еще и перед uploads добавляют один лишний слеш).
Это я к тому, что за формирование пути до картинки отвечает не шаблон, я нашел строки в user.entity.class.php, которые возвращают путь до аватаров и фоток, но вот что там править никак не пойму)))