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

Пишите ваши предложения здесь.
Ответить
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

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

Сообщение 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"). Любой адекватный веб-сервер автоматически распознает индексные файлы.
alexinc
Сообщения: 391
Зарегистрирован: 03 мар 2022, 21:40
Имя: Alex
Откуда: Россия
Контактная информация:

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

Сообщение alexinc »

А может лучше корректно прописать на локальном DNS имя компа? чтобы со всех сторон он был одинаковый?
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

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

Сообщение Develop-Soft »

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

P.S. Собственно, полные пути генерирует только "Руководитель". Со прочими движками такой проблемы не возникало и заводились из коробки без танцев с бубном...
Vladzimir
Сообщения: 78
Зарегистрирован: 05 май 2022, 20:12
Имя: Влад Зимир
Откуда: Kyiv

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

Сообщение Vladzimir »

Тогда лучше использовать getenv('HTTP_HOST')
А на счет относительных ссылок - я в нормальных системах, если честно, не встречал.
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

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

Сообщение Develop-Soft »

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

Я вот вижу, что даже этот форум генерирует относительные ссылки:
Изображение
Собственно практически все остальные системы и сайты работают аналогично. Я согласен с тем, что генерация полного URL прокатывает на доброй половине серверов, но почему бы не сделать так, чтобы прокатывало на всех?
Тем более, что "переделки" выглядят так:
Изображение
Вообще я не очень понимаю каким боком движок "отвечает" за SSL? Это вроде как задача сервера...
Последний раз редактировалось Develop-Soft 06 сен 2023, 13:35, всего редактировалось 2 раза.
Vladzimir
Сообщения: 78
Зарегистрирован: 05 май 2022, 20:12
Имя: Влад Зимир
Откуда: Kyiv

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

Сообщение Vladzimir »

Тогда сами назначьте $_SERVER['HTTP_HOST'], например в файле конфига
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

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

Сообщение Develop-Soft »

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