我上周在iis中添加了ssl,并在网站的web.config中配置了重定向301规则。
今天,我注意到https://www版本没有重定向到我网站的https://non-www版本,并且两个版本的图片和CSS文件等资源都可用。
我添加到我的web.config中的这些规则正确吗?
由于IIS和wordpress,我不得不将资源和Unicode Url重定向添加到web.config。
从http重定向到https的操作正常
从http // www到http://non-www的重定向有效
但无法从https // www重定向到https://non-www!
我的web.config文件:
<rewrite>
<rules>
<rule name="HTTPS" patternSyntax="ECMAScript" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}"
redirectType="Permanent" />
</rule>
<rule name="Redirect Image to HTTP" stopProcessing="true">
<match url=".*\.(gif|jpg|jpeg|png|css|js|pdf|ttf|woff2|woff|mp4)$"
ignoreCase="true" />
<action type="Rewrite" url="{R:0}" />
</rule>
<rule name="WordPress Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
<serverVariables>
<set name="REQUEST_URI" value="{UNENCODED_URL}" replace="true" />
</serverVariables>
</rule>
</rules>
答案 0 :(得分:0)
根据您的描述,您的规则似乎没有问题,那么您似乎想意识到,将诸如https://www.example.com之类的任何https请求更改为https://example.com正确吗?我在这里做了一个样本。这是规则,希望它能对您有所帮助。
<rule name="rule1" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^on$" />
<add input="{HTTP_HOST}" pattern="www[.](.+)" />
</conditions>
<action type="Redirect" url="https://{C:1}/{R:0}" />
</rule>