• I’m running a multisite WordPress installation hosting about 100 sites. Here is my intended setup for production: one server running ARR on IIS sitting in front of servers that only respond to HTTPS requests for the CMS.

    The CMS server in my lab is running https://www.wordpress.dev. The ARR server receives requests for https://www.wordpress.cms.dev and forwards the request with the host header https://www.wordpress.dev and rewrites the outbound content replacing https://www.wordpress.dev with https://www.wordpress.cms.dev. So far, so good. The problem comes when I try to hit https://www.wordpress.cms.dev/wp-admin/. This issues a 302 redirect to https://www.wordpress.dev/wp-login.php?redirect_to=https%3A%2F%2Fwww.wordpress.dev%2Fwp-admin%2F&reauth=1.

    Here are my current rewrite rules on the ARR server:

    <rewrite>
                <globalRules>
                    <clear />
                    <rule name="ARR_wordpress_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
                        <match url="*" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                            <add input="{HTTP_HOST}" pattern="*.wordpress.dev" />
                            <add input="{SERVER_PORT}" pattern="80" />
                        </conditions>
                        <action type="Rewrite" url="http://wordpress/{R:0}" />
                    </rule>
                    <rule name="ARR_wordpress-ssl_loadbalance" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                        <match url="*" />
                        <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                            <add input="{OriginServers:{HTTP_HOST}}" pattern="*" />
                            <add input="{HTTPS}" pattern="on" />
                        </conditions>
                        <action type="Rewrite" url="https://wordpress-ssl/{R:0}" />
                        <serverVariables>
                            <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
                            <set name="HTTP_HOST" value="{C:1}" />
                        </serverVariables>
                    </rule>
                </globalRules>
                <rewriteMaps>
                    <rewriteMap name="OriginServers">
                        <add key="www.wordpress.cms.dev" value="www.wordpress.dev" />
                    </rewriteMap>
                    <rewriteMap name="OutboundMap">
                        <add key="www.wordpress.dev" value="www.wordpress.cms.dev" />
                    </rewriteMap>
                </rewriteMaps>
                <allowedServerVariables>
                    <add name="HTTP_HOST" />
                    <add name="HTTP_X_FORWARDED_HOST" />
                </allowedServerVariables>
                <outboundRules>
                    <rule name="Outbound Rule" preCondition="IsHTTPS" enabled="true" patternSyntax="Wildcard">
                        <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="https://*/*" />
                        <conditions trackAllCaptures="false">
                            <add input="{OutboundMap:{R:1}}" pattern="*" />
                        </conditions>
                        <action type="Rewrite" value="https://{C:1}/{R:2}" />
                    </rule>
                </outboundRules>
            </rewrite>
            <proxy enabled="false" preserveHostHeader="false">
                <cache enabled="false" />
            </proxy>

    Any assistance would be greatly appreciated.

The topic ‘Creating a second admin domain for CMS access’ is closed to new replies.