我正在尝试在 IIS 中创建 url 重写。我们已经在服务器上安装了 SSL 证书,并且需要所有连接都是 HTTPS。 HTTPS 重写规则似乎工作正常。
我们遇到的问题是整个组织的用户都有服务器名称的书签。因此,他们将收到有关服务器名称与证书不匹配的安全警告。示例:https://mywebserver/BI/Default.aspx .
我需要重写域,以便它们重定向到 https://mywebserver.abcxyz.com/BI/Default.aspx
我创建的当前规则将重定向到 HTTPS。它还将重写来自 https://mywebserver/ 的域至 https://mywebserver.abcxyz.com .
我遇到的问题是,如果服务器名称后面有任何内容,它将无法正常工作。无效域示例:http://mywebserver.abcxyz.com/BI/Default.aspx
有什么建议吗?这是我当前在 web.config 中的内容。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="CanonicalHostNameRule1" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mywebserver\.abcxyz\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://mywebserver.abcxyz.com/{R:1}" />
</rule>
<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
最佳答案
尝试这样的事情并执行 HTTPS,这样您就不会有 2 个单独的重定向
<rule name="CanonicalHostNameRule1" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="mywebserver.com" />
</conditions>
<action type="Redirect" url="https://mywebserver.abcxyz.com/{R:1}" />
</rule>
关于asp.net - 新域名的 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34076258/