URL-адрес исходящего сайта Wordpress IIS в css

Я использую IIS, и он прослушивает порт 80 & 443. Теперь нам нужно настроить сайт Wordpress на Apache и заставить его работать на порте по умолчанию, мы попытались создать прокси в IIS с помощью перезаписи URL и ARR и перенаправить запрос на другой порт. Оба сервера находятся на машине. Все работает нормально, кроме абсолютных URL-адресов в background-image () или url () в css.

Ниже приведены правила для IIS:

<rules>

    <!-- Forward request to apache. SSL offloading enabled. -->
    <rule name="Forward Request to Apache" stopProcessing="true">
        <match url="(.*)" />
        <action type="Rewrite" url="http://mysite.xyz:8080/{R:1}" />
    </rule>
</rules>
<outboundRules>
    <rule name="Apache Outbound" enabled="true" preCondition="IsHtml">
        <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^(.*)mysite.xyz:8080(.*)$" />
        <action type="Rewrite" value="https://mysite.xyz{R:2}" />
    </rule>
    <preConditions>
        <preCondition name="IsHtml">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
        </preCondition>
    </preConditions>
</outboundRules>

Проблема в том, что некоторый контент был добавлен на страницу каким-то компонентом (я думаю), и он находится на http (поскольку url сайта установлен на http) и создает ошибку смешанного контента при загрузке через SSL:

<div class="wpex-parallax-bg"
    data-direction="top" data-velocity="-0.2"
    style="background-image: url("http://mysite.xyz:8080/wp-content/uploads/2018/02/beach-sunset-2-1.jpg");
    opacity: 1; background-position: 50% -297.956px;"
></div>

Я думаю, это какой-то JS. Есть ли способ исправить это, добавив правила исходящего трафика в IIS или что-то еще на стороне WordPress?

Я очень благодарен за любые предложения!

PS: - Я не специалист по Wordpress, поэтому, пожалуйста, терпите меня. :)

0
задан 3 April 2018 в 17:28
1 ответ

Согласно философии WordPress, каждый сайт имеет канонический URL, а WordPress везде использует абсолютные URL. Использование относительных URL-адресов обсуждалось , а использование абсолютных URL-адресов хорошо обосновано . (Хотя мне это не нравилось, я привык это принимать.)

Здесь порт, который прослушивает Apache, является просто технологическим требованием, и он также может прослушивать соединения только с localhost. Запрещается посещать ваш сайт с использованием http://example.com:8080/ , то есть он может иметь канонический адрес http (s): //example.com/ (или подпапку).

Поскольку у вашего сайта каноническое имя, вам может потребоваться некоторое время, чтобы настроить свой сайт WordPress для использования его повсюду:

  1. В Настройки> Общие настройте ] Адрес WordPress (URL) & Адрес сайта (URL) .
  2. Используя плагины, такие как Search & Replace , вы можете заменить как все неправильные, так и относительные URL-адреса в вашем базу данных с каноническим URL.
  3. Если кто-то действительно сделал что-то по-другому, вам, возможно, придется изменить это вручную.

Хотя это можно сделать с помощью перезаписи IIS, этот метод упрощает задачу в будущем: когда вам понадобится Чтобы изменить программный стек веб-сервера или даже канонический URL-адрес, у вас есть собственный способ сделать это в WordPress. Считайте это разовой работой по переносимости.

1
ответ дан 4 December 2019 в 15:59

Теги

Похожие вопросы