У меня есть сайт WordPress в IIS 8, назовем его www.mysite.com
, который мне нужно изолировать за прокси-сервером (с IIS 10).
То, что я сделал до сих пор, это:
- изменено
siteurl
и home
на site.mysite.com
(чтобы избежать непрерывного перенаправления) - добавлен сайт
www.mysite.com
на новом сервере с обратным прокси-сервером к site.mysite.com
(определен в хостахфайл как старый псевдоним ip-сервера), настроенный следующим образом: <configuration>
<system.webServer>
<rewrite>
<outboundRules rewriteBeforeCache="true">
<clear />
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" enabled="true">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://site.mysite.com/(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true" />
<action type="Rewrite" value="http{R:1}://www.mysite.com/{R:2}" />
</rule>
<rule name="RestoreAcceptEncoding" preCondition="NeedRestoringAcceptEncoding" enabled="true">
<match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true" />
<action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
<preCondition name="NeedRestoringAcceptEncoding">
<add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+" />
</preCondition>
</preConditions>
</outboundRules>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="https://site.mysite.com/{R:1}" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
К сожалению, этого недостаточно.
Несмотря на правило обратного прокси-сервера исходящих сообщений, многие сценарииcss ссылки и изображения указывают на site.mysite.com
(который не доступен в Интернете) вместо www.mysite.com
.
Есть ли способ исправить эти ссылки, ссылаясь на www
?
Есть ли лучшие решения?
Я никогда не работал с WordPress / PHP и не знаю, как он строит эти URL, поэтому, если вам нужны какие-либо пояснения, пожалуйста, будьте настолько конкретны, насколько это возможно, поэтому я могуулучшить мой вопрос.
ОБНОВЛЕНИЕ
Если я настрою
- на изолированном сервере
siteurl
и home
до www.mysite.com
- установить
127.0.0.1 www.mysite.com
в файле hosts
- в открытом доступесервер
- привязка сайтов IIS 10
www.mysite.com
с правилом пересылки www.mysite.com
- набор
WORDPRESS_SERVER_IP www.mysite.com
в файле хостов
Iполучить следующее сообщение об ошибке IIS:
ошибка HTTP 400.605 - неверный запрос Запрос не может быть перенаправлен, поскольку он достиг предела Max-Forwards.Сервер может ссылаться на себя в топологии маршрутизации запросов.