我刚刚安装了https证书,并且很难设置重定向。
我尝试在IIS(7.5)中使用HTTP重定向,但无法让它在IE和FF和Chrome中工作,一旦我通过初始登录页面,我会得到“太多重定向”错误。
我也试过URL重写,但它是完全失败,所以我恢复到HTTP重定向。HTTPS重定向到一个文件夹不工作
用户使用“http://example.com/internal”访问网站。现在,我想重定向到“https://internal.example.com/internal”,并且无法使其工作。如果可能的话,我宁愿不要使用URL中的最后一个“内部”(我在请求CSR时使用的通用名称是internal.example.com)。
在HTTP重定向中,我使用状态码301(永久)将“重定向到此目的地的请求”设置为“https://internal.example.com/internal/default.aspx”并将“重定向行为”设置为“仅将请求重定向到此目录中的内容”。
网站有一个包含.Net应用程序文件并需要表单身份验证的“内部”文件夹。根文件夹中的文件对所有人开放(即www.example.com向所有人开放)。
任何帮助你可以提供设置这是非常感谢。
更新
我更新的web.config并添加了一些URL重写规则,但仍然不能令人信服。
在IE中,当我键入example.com/internal时,它会转到https://internal.example.com而不是http://internal.example.com/internal。
在Chrome中,它不会转到https,停留在http中并显示“不安全”。
<rewrite>
<rules>
<rule name="Rewrite to internal" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.example.com$" />
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="internal.example.com to sub folder internal" enabled="true" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_HOST}" pattern="^internal\.example\.com$" ignoreCase="false" />
<add input="{PATH_INFO}" pattern="^/internal($|/)" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/" />
</rule>
</rules>
</rewrite>
第一条规则是让01经过;第二个是将http://example.com/internal重定向到https://internal.example.com/internal。
谢谢。除了“表单身份验证”之外,我还选择了“基本身份验证”,并且不允许我启用匿名身份验证。我禁用基本和启用匿名,但没有改变。我刚刚更新了一些关于web.config修改的更多信息。 – NoBullMan
如果Request.ServerVariables [“SERVER_NAME”]和Request.ServerVariables [“PATH_INFO”]满足我的条件,我决定放弃URL重写和HTTP重定向,并在Default.aspx.cs的Page_Init上使用Response.Redirect添加重定向语句重定向。适用于所有浏览器。 – NoBullMan
我有一个类似的项目设置,我需要做的是设置匿名身份验证,禁用所有其他身份验证,然后使用aweb config rewrite将所有端口80流量重定向到443。 –