我正在使用URL重写来强制HTTP到https重定向。它正在工作,除了它在URL后面添加了第二个斜杠。例如,如果我转到http://example.com,重写的URL最终将成为https://example.com//。我不想要甚至1个斜杠,更不用说2了,我不能摆脱它。我尝试了this解决方案,但它不起作用。可能是因为这个人想摆脱尾随斜杠,我有2个,所以它不匹配?
我在我的web.config文件中有以下规则。我正在运行Windows Server 2019与IIS 10和URL重写模块。如果有人能告诉我哪里出错了,我将不胜感激!
<rule name="HTTPS Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{REQUEST_URI}" appendQueryString="false" />
</rule>
<rule name="SEO - Remove trailing slash" stopProcessing="false">
<match url="(.+)/$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_METHOD}" pattern="GET" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="_{R:1}" />
</rule>
3条答案
按热度按时间50pmv0ei1#
只需删除重定向URL操作中{HTTP_HOST}和{REQUEST_URI}之间的斜杠。(https://serverfault.com/questions/893315/best-way-to-redirect-all-http-to-https-in-iis)
a8jjtwal2#
您可以尝试使用此URL重写规则:
dsekswqp3#
我已经经历了这个问题,我注意到在这个问题中给出的其他一个答案是不工作,所以我解决了这个问题,并希望分享什么是为我工作。请找到下面的重写规则,正在努力从URL中删除双斜杠。我们需要把它放在web.config中。