Как использовать относительные URL на веб-сайте с двумя базовыми URL - PullRequest
0 голосов
/ 30 ноября 2010

В нашем корневом веб-каталоге установлен наш основной корпоративный статический html-сайт, а в / portal установлено наше программное обеспечение для выставления счетов.Я интегрировал сайты, чтобы они выглядели как единый сайт, включив файл шаблона /menu.tpl smarty в файл /portal/header.tpl.Однако, если я использую относительные URL-адреса, sysem меню не работает, поскольку базовый URL для сценария биллинга - / portal.т.е. если я создаю ссылку на faq.php в menu.tpl и загружаю страницу на сайте портала, ссылка в меню на страницу faq теперь имеет вид /portal/faq.php, поэтому если я загружаю страницу сНа корневом сайте ссылка просто /faq.php в порядке.

Очевидный ответ - просто использовать абсолютные URL-адреса, но мне нужно, чтобы сайт был переносимым, поскольку у меня есть много разработчиков, которым необходимо установить и протестировать его.,Есть идеи?

1 Ответ

0 голосов
/ 30 ноября 2010

Недавно я столкнулся с той же проблемой, что и вы, и после множества тупиковых ситуаций я наконец-то нашел следующее решение:

  1. Для любого URL вы должны быть хамелионом, то есть изменять его путь в зависимости от среды, вставлять функцию PHP, которая выдает правильный URL.
  2. Если вы включаете функцию PHP из одного центрального файла, то вы можете автоматически изменять все URL-адреса на всем сайте в зависимости от настроек или некоторых предварительно обнаруженных переключателей, таких как имя текущего домена и т. Д.

Пример:

<?php print_base_url_plus("/menu.php"); ?>

... где print_base_url_plus () - это функция, которая добавляет базовый URL в вывод.

Вы можете обнаружить, что вам нужно изменить некоторые URL-адреса на php, чтобы они были предварительно обработаны механизмом PHP, или вы можете изменить веб-настройки так, чтобы стандартные файлы .htm передавались через механизм PHP, просто как .php файлы.

...