Перенаправление на (https и не www) для всех запрошенных URI через web.config - PullRequest
0 голосов
/ 04 июня 2019

Я хочу (https и не www) перенаправление для всех запрошенных URI. Любая помощь будет высоко оценен. Спасибо,

Хорошо работает для

1) «http» - «https» (успех)

2) «https» - «https» (успех)

3) '/ index' to '/'

4) '/ contact (с www)' to '/ contact (без www)' (неудачно)

<system.web>
    <customErrors mode="On" defaultRedirect="/" >
        <error statusCode="404" redirect="/" />
    </customErrors>
</system.web>

<system.webServer>
    <rewrite>

        <rewriteMaps>
            <rewriteMap name="Redirects">
                <add key="/index.php" value="/" />
                <add key="/a.php" value="/a" />
                <add key="/Res" value="/results#experience" />
                <add key="/blog/" value="/" />
            </rewriteMap>
        </rewriteMaps>

        <rules>
            <rule name="Imported Rule 1" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}.php" matchType="IsFile" ignoreCase="false" />
                </conditions>                   
                <action type="Rewrite" url="{R:1}.php" appendQueryString="true" />
            </rule>

            <rule name="Redirect rule1 for Redirects">
                <match url=".*" />
                <conditions>
                    <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Redirect" url="{C:1}" appendQueryString="false" />
            </rule>

            <rule name="Remove www prefix">
                <match url="(.*)" ignoreCase="true" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="off" ignoreCase="true" />
                </conditions>
                <action type="Redirect" url="https://test.com.au/{R:1}" redirectType="Permanent"/>
            </rule>

            <rule name="Redirect index.php" stopProcessing="true">
                <match url="^(\w*/)?index\.php" ignoreCase="true"></match>
                <conditions>
                    <add input="{HTTP_HOST}" pattern="test\.com\.au$"/>
                </conditions>
                <action type="Redirect" url="https://test.com.au/{R:1}" redirectType="Permanent" />
            </rule>         
        </rules>
    </rewrite>

    <urlCompression doStaticCompression="true" doDynamicCompression="true" />

    <staticContent>
        <clientCache cacheControlCustom="public" cacheControlMode="UseExpires" httpExpires="Tue,19 Jan 2038 03:14:07 GMT" />
        <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
        <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
        <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
    </staticContent>

    <defaultDocument> 
        <files> 
        <remove value="index.php" /> 
        <add value="index.php" /> 
        </files> 
    </defaultDocument>
</system.webServer>

Я хочу, чтобы все запрошенные URI перенаправлялись на https и не www только через web.config

1 Ответ

0 голосов
/ 04 июня 2019

См. Код, указанный ниже:

<rewrite>
    <rules>
        <rule name="Redirect to non-www" stopProcessing="true">
            <match url="(.*)" negate="false"></match>
            <action type="Redirect" url="https://example.com/{R:1}"></action>
            <conditions>
                <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true"></add>
            </conditions>
        </rule>
    </rules>
</rewrite>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...