gpt4 book ai didi

iis-7 - 即使使用 URL 重写,IIS 也会强制斜杠以将其删除

转载 作者:行者123 更新时间:2023-12-03 17:05:39 25 4
gpt4 key购买 nike

即使 URL 重写来自:http://ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/,我也无法删除我网站 URL 的尾部斜杠.

真的很令人沮丧,因为它应该如此简单,但我的尝试没有产生任何结果。

我什至创建了一个测试目录并添加了名为 desktops.aspx 的文件和名为 desktops 的子文件夹。

没有子目录“/test/desktops”加载很好,因为我将默认文档设置为查看desktops.aspx。

创建一个子文件夹并仍然引用“/test/desktops”,它会强制使用斜杠并查看子目录。

为什么 IIS 会这样做,因为它应该先查找文件,然后才是正确的子目录?服务器端是否有任何设置可以强制回退斜杠?

URL 重写代码段:

<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>

欢迎任何帮助

最佳答案

您正在使用 Rewrite 类型的操作但你想要一个 Redirect .

将您的配置更改为:

<rule name="SEO - Remove trailing slash" stopProcessing="false">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>

您还需要更改 url="(.+)/$"url="(.*)/$" .

提示:

测试模式的最佳方法是使用 IIS 测试模式工具。
在您网站的根目录 -> URL Rewrite -> 创建一个空白规则 -> 点击测试模式:

关于iis-7 - 即使使用 URL 重写,IIS 也会强制斜杠以将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com