We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2776
    • 10 Posts
    Добрый день.

    Ситуация значит такая: у меня VDS (firstvds.ru), большинство времени всё работает отлично, но иногда код [(site_url)] вместо нормального названия сайта site.com выдает IP, присвоенный моему серверу. И всё равно все работает нормально, только вместо имени сайта - IP (php заменяет буквенное написание на цифровое во всех ссылках).

    Нажимаю на "Обновить сайт" в админке — и чудесным образом всё встает на свои места.

    Где копать?
      • 23695
      • 230 Posts
      например вместо абсолютных путей http://site.com/home.html использовать относительные /home.html, еще вариант [(base_url)]/home.html
        • 2776
        • 10 Posts
        У меня в <head> прописан путь: <base href="[(site_url)]" />, поэтому всё нормально с относительными путями.
        Так вот этот путь иногда получается вида <base href="http://56.33.134.21" />
          • 23695
          • 230 Posts
          если вас беспокоит только это место, пропишите туда руками адрес сайта, самый простой вариант =)
            • 31022
            • 328 Posts
            А что делать в такой ситуации. Контент-менеджер привык работать с www, а администратор, например, без www. После работы первого в кеше системы остаются страницы со ссылками с www, когда заходит администратор -- все ссылки становятся http://www... (используется конструкция <base href="[(site_url)]" />). Это очень неприятно, когда сайт закрыт для пользователей, и открывается при логине в админке. Причем, если залогинились по адресу без www, то адрес с ним недоступен для просмотра. Чтобы протестировать что-то приходится чистить кеш системы.
              • 36823
              • 334 Posts
                • 31022
                • 328 Posts
                Много думал, смотрел правила написания htaccess...

                Всё правильно, надо раскомментировать и внести изменения, в часть кода используемого для плагина SEO Strict URLs:
                # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
                #RewriteCond %{HTTP_HOST} .
                #RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
                #RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]

                То есть, если я раскомментирую эти правила, при запросе с www пользователя будет автоматически перекидывать на просто _http://site.ru/? Правильно я понял?

                А можно какими-нибудь такими же простыми средствами позволить работать совместно двум подходам, с 3w и без них?
                  • 23695
                  • 230 Posts
                  www.site.com и site.com это разные сайты, если вы на каком-то из них авторитизируетесь, то на другом эта авторитизация конечно не будет работать. Либо весь редирект на www либо на без www.
                    • 31022
                    • 328 Posts
                    Все понял, спасибо, разъясили (: За несколько дней до этой темы, как раз после прочтения по ссылке в directresize, хотел создать новую тему с вопросом как раз про www, чтобы расставить все точки над i. Теперь не буду.

                    Раскомментирую лучше в htaccess.
                      • 20972
                      • 19 Posts
                      Используй вместо <base href="[(site_url)]" /> вот это <base href="[!site_url!]" />
                      где [!site_url!] сниппет код ниже:
                      <?php
                      return $modx->config['site_url'];
                      ?>