IIS 出站 wordpress 站点 URL(CSS 格式)

IIS 出站 wordpress 站点 URL(CSS 格式)

我正在使用 IIS,它正在监听端口 80 和 443。现在,我们需要在 Apache 上配置一个 wordpress 网站,为了让它在默认端口上工作,我们尝试使用 URL 重写和 ARR 在 IIS 中创建代理,并将请求转发到不同的端口。两台服务器都在机器上。除了 css 中的绝对 URL 之外,一切都运行background-image()良好url()

以下是 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 端添加任何内容来修复此问题?

非常感谢您的任何建议!

附言:- 我不太懂 wordpress 所以请大家多包涵。:)

答案1

在 WordPress 哲学中,每个网站都有一个规范 URL,而 WordPress 在所有地方都使用绝对 URL。使用相对 URL 一直是讨论使用绝对 URL 是有根有据(虽然我不喜欢它,但我已经习惯接受它了。)

这里,Apache 监听的端口仅仅是一个技术要求,它也可能只监听来自本地主机的连接。你的网站不应该被访问http://example.com:8080/,这意味着它可以有规范的地址http(s)://example.com/(或子文件夹)。

由于您的网站有一个规范名称,您可以花一些时间调整您的 WordPress 网站以便在任何地方使用它:

  1. 设置 > 常规,调整WordPress 地址 (URL)&网站地址 (URL)
  2. 使用类似插件搜索和替换您可以用规范 URL 替换数据库中所有错误和相对 URL。
  3. 如果有人确实做了不同的事情,你可能必须手动更改它。

虽然可以使用 IIS 重写来实现这一点,但这种方法使将来的事情变得更容易:每当您需要更改 Web 服务器软件堆栈甚至规范 URL 时,您都可以在 WordPress 中以原生方式进行更改。将此视为一次性的可移植性工作。

相关内容