Страница 1 из 1

Генерация URL (относительный путь).

Добавлено: 03 сен 2023, 17:56
Develop-Soft
Предыстория:
Проблема перекочевала в версию 3.4.3
support писал(а): 03 янв 2023, 13:05 Для построения ссылки берется переменная $_SERVER['HTTP_HOST']
смотрите includes\functions\urls.php

Код: Выделить всё

function url_for($module, $prams = '', $hide_session = false)
Сначала заменил $host внаглую на внешний домен. Помогло. Однако пропал доступ по локалке.
Попробовал исключить $scheme и $host совсем - работает и внешка и локалка:
Изображение

Правда почему-то глючит http-протокол в локалке (upd - стояла директива Enable_SSL), но мне кажется, что путь решения правильный: отказаться от генерации полного пути в пользу относительного (заодно немного разгружается код страниц).
Исключением может быть ситуация, когда при работе из локалки и интернета необходимо сгенерировать внешний url, находясь в локальном экземпляре. В этом случае желательно иметь параметр "внешний домен" и генерировать ссылку с его участием.
Также можно было бы отказаться от использования index.php в ссылках ("/?module"). Любой адекватный веб-сервер автоматически распознает индексные файлы.

Re: Генерация URL (относительный путь).

Добавлено: 04 сен 2023, 21:41
alexinc
А может лучше корректно прописать на локальном DNS имя компа? чтобы со всех сторон он был одинаковый?

Re: Генерация URL (относительный путь).

Добавлено: 04 сен 2023, 23:12
Develop-Soft
alexinc писал(а): 04 сен 2023, 21:41 А может лучше корректно прописать на локальном DNS имя компа? чтобы со всех сторон он был одинаковый?
Зачем? Я уже подпилил includes\functions\urls.php для генерации относительных путей и теперь работает по любому пути и любыми протоколами (в том числе с отключенной директивой enable_ssl), и даже через веб-прокси, с коим $_SERVER['HTTP_HOST'] терпит фиаско, выдавая локальный адрес.
Делюсь соображениями, предлагаю применить в стоке.

P.S. Собственно, полные пути генерирует только "Руководитель". Со прочими движками такой проблемы не возникало и заводились из коробки без танцев с бубном...

Re: Генерация URL (относительный путь).

Добавлено: 06 сен 2023, 12:45
Vladzimir
Тогда лучше использовать getenv('HTTP_HOST')
А на счет относительных ссылок - я в нормальных системах, если честно, не встречал.

Re: Генерация URL (относительный путь).

Добавлено: 06 сен 2023, 12:58
Develop-Soft
Vladzimir писал(а): 06 сен 2023, 12:45 Тогда лучше использовать getenv('HTTP_HOST')
Также выдал локальный адрес...
Изображение
Vladzimir писал(а): 06 сен 2023, 12:45 А на счет относительных ссылок - я в нормальных системах, если честно, не встречал.
Например?

Я вот вижу, что даже этот форум генерирует относительные ссылки:
Изображение
Собственно практически все остальные системы и сайты работают аналогично. Я согласен с тем, что генерация полного URL прокатывает на доброй половине серверов, но почему бы не сделать так, чтобы прокатывало на всех?
Тем более, что "переделки" выглядят так:
Изображение
Вообще я не очень понимаю каким боком движок "отвечает" за SSL? Это вроде как задача сервера...

Re: Генерация URL (относительный путь).

Добавлено: 06 сен 2023, 13:18
Vladzimir
Тогда сами назначьте $_SERVER['HTTP_HOST'], например в файле конфига

Re: Генерация URL (относительный путь).

Добавлено: 06 сен 2023, 13:22
Develop-Soft
Vladzimir писал(а): 06 сен 2023, 13:18 Тогда сами назначьте $_SERVER['HTTP_HOST'], например в файле конфига
Назначил (пустую строку :) )