URL перенаправления из файла web.config не работает должным образом - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу удалить расширение html, но не удалось при переходе в каталог. link1 моего сайта работает нормально, но другие ссылки на каталоги не работают должным образом. ссылка2

я хочу удалить расширение html в конце этой ссылки

http://mremind.com/products-services/credentialing.html

но после моей перезаписи

http://mremind.com/products-services/credentialing/, который не работает.

В потоке укладки другой вопрос Я нашел решение моей проблемы, но оно не работаетправильно.

мое решение в файле web.config:

<rewrite>
    <rules>
        <rule name="Hide .html ext">
            <match ignoreCase="true" url="^(.*)"/>
            <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                <add input="{REQUEST_FILENAME}.html" matchType="IsFile"/>
            </conditions>
            <action type="Rewrite" url="{R:0}.html"/>
        </rule>
        <rule name="Redirecting .html ext" stopProcessing="true">
            <match url="^(.*).html"/>
            <conditions logicalGrouping="MatchAny">
                <add input="{URL}" pattern="(.*).html"/>
            </conditions>
            <action type="Redirect" url="{R:1}"/>
        </rule>
    </rules>
</rewrite>

1 Ответ

0 голосов
/ 01 февраля 2019

Я думаю, что вам нужно другое правило переписывания.Вы перенаправляете с credentialing.html на credentialing, но этот файл не существует, поэтому вы, вероятно, получаете 404. Вам нужно правило, которое снова добавляет расширение .html для перезаписи, чтобы IIS мог снова найти файл.

<rule name="No html ext" stopProcessing="true">
  <match url="^([a-z0-9-_/]+)$" ignoreCase="true" />
  <action type="Rewrite" url="{R:1}.html" />
</rule>
...