We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17761
    • 9 Posts
    Ситуация такова:
    Есть сайт на Revo, лежит в локальной сети на одном из компов, веб-сервер - wampserver. К этому компу привязан DynDns. На сайт можно попасть как из локалки по внутреннему айпишнику, так и снаружи по доменному имени(ну или айпишнику, но внешнему). [[++site_url]] содержит доменное имя сайта.
    Проблема:
    1. Содержимое сайта тянется через инет даже если заходить из локалки по внутреннему IP (ссылки-то используются относительные, а <base href="[[++site_url]]">), соответственно, замедляется работа и съедается трафик.
    2. У пользователя есть ограничение по трафику интернета. Если трафик превышается, пользователю блокируется доступ в интернет, но на внутренний сайт он должен попадать в любом случае. Но, т.к. все ссылки получаются "интернетовскими", пользователь не может попасть никуда, кроме главной страницы сайта, и то, без картинок.
    Вопрос:
    Как заставить MODx показывать ссылки с локальным айпишником тем, кто зашел на сайт по IP-адресу?
    Насколько я знаю, [[++site_url]] определяется в конфиге и прочно заседает в кэше, поэтому менять его динамически не имеет смысла - если поменять его в конфиге, ссылки обновляются только после очистки кэша.
    Что посоветуете? не хочется изобретать велосипед и отключать кэш.
    P.S.: Бывает, что инет отваливается, и приходится править конфиг и обновлять кэш, чтобы внутри локалки могли пользоваться сайтом. А когда инет появляется, приходится восстанавливать всё как было, чтобы и снаружи могли пользоваться сайтом >:(
    P.S.2: В 5 утра пришла в голову сумасшедшая мысль: вместо строки <base href...> сделать некэшируемый вызов сниппета, а в нём каким-то образом проверять, по какому адресу обратились к данной странице (через доменное имя или локальный айпишник) и генерировать соответствующий <base href...>... Что скажете?
      • 17761
      • 9 Posts
      Хех, Спасение утопающих - дело рук самих утопающих smiley
      Чуть покопался в конфиге и написал сниппет base_href:
      <?php
      return(MODX_URL_SCHEME.$_SERVER['HTTP_HOST'].MODX_BASE_URL);
      ?>

      И в шаблоне вызов:
      <base href="[[!base_href]]" />

      Теперь всё отлично работает как внутри, так и снаружи cool
        • 7571
        • 135 Posts
        Возможно глупый вопрос, но все же: есть хостинг на 10 сайтов. Возможно ли поставить MODx Revo и использовать ее для нескольких сайтов, если да, то как это организовать на сервере хостинга, ведь там один сайт - новая попка, в которой должна стоить CMS.