我们有一个wordpress多站点,主站点有一个与主站点类似的URL。com公司
每个子站点都有一个URL,如subdomain1。主站点。com,子域2。主站点。com等每个我们想隐藏在单独反向代理(如revprox1)后面的子站点。com/RP1子站点显示子域1。主站点。com,revprox2。com/rp2subsite显示子域2。主站点。com等
使用下面的代码在IIS7上执行反向代理,网站显示在相关的反向代理URL上,但是页面上的所有超链接都引用原始URL,而不是反向代理,因为wordpress使用绝对路径。我们安装了一个插件,强制wordpress为所有链接强制执行相对路径,此时所有链接都起作用,反向代理文件夹被附加到链接的开头,但是CSS被破坏,因为它正在反向代理的根位置查找CSS,而没有附加反向代理文件夹,例如它在revprox1处查找CSS。com/css。css而不是revprox1。com/rp1subsite/css。css
我想知道以前是否有人尝试过像这样设置Wordpress,我应该看些什么来解决这个问题,好像CSS正在正确的位置上寻找它对我们有用一样。我们不可能真正改变数据库,因为我们希望能够允许我们的网站管理员以最少的参与来设置新网站。
<rule name="Reverse Proxy to Site 1" stopProcessing="true">
<match url="^rp1subsite/(.*)" />
<action type="Rewrite" url="http://subdomain1.mainsite.com/{R:1}" />
</rule>
<rule name="Reverse Proxy to Site 2" stopProcessing="true">
<match url="^rp2subsite/(.*)" />
<action type="Rewrite" url="http://subdomain2.mailsite.com/{R:1}" />
</rule>
</rules>
<outboundRules>
<rule name="Add application prefix" preCondition="IsHTML">
<match filterByTags="A" pattern="^/(.*)" />
<conditions>
<add input="{URL}" pattern="^/(rp1subsite|rp2subsite)/.*" />
</conditions>
<action type="Rewrite" value="/{C:1}/{R:1}" />
</rule>
<preConditions>
<preCondition name="IsHTML">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
SO网友:Mark Kaplun
如果您希望wordpress在被要求提供示例中的内容时表现良好。com您需要对其进行配置以了解这一点。这是在安装wordpress的域的安装过程中自动完成的,但也可以从wp-config.php
通过将值设置为WP_HOME
和WP_SITEURL
常量。
当代理发出请求时,您需要做的是以不同的方式设置contants。您的wp配置中应该有。php类似
if (request is comming from the proxy) {
define(\'WP_HOME\', \'http://www.revproxy.com\');
define(\'WP_SITEURL\', \'http://www.revproxy.com\');
}
这将解决wordpress API生成的所有URL的问题,但您仍然需要代码将内容中的链接转换为“相对”链接,或根据
WP_HOME