asp.net - 为什么在 URL 中缺少尾部斜杠 (/) 时会发生重定向?

标签 asp.net redirect http-status-code-301 trailing-slash

最浪费的重定向之一发生在 URL 中缺少尾随斜杠 (/) 时,否则应该有一个。例如,转到 http://example.com/action导致 301 响应包含重定向到 http://example.com/action/ (注意添加的斜杠)。

那么它背后的原因是什么以及在 Asp.Net 应用程序的情况下如何解决它。任何想法!

最佳答案

它是 StaticFileHandler 的一部分在 asp.net 中,所以我认为您无法(轻松)更改它。这正是静态文件的默认 HTTP 处理程序所做的。

行为的来源是可以在 applicationhost.config 中找到的以下行:

<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule">

我怀疑这里导致重定向的特定模块是DefaultDocumentModule ,但这需要进一步调查才能确认。

您可以通过删除 DefaultDocumentModule 来测试它。 , 将此行更改为
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DirectoryListingModule">

它可能会破坏您的网站,但重定向会消失。

关于asp.net - 为什么在 URL 中缺少尾部斜杠 (/) 时会发生重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29468778/

相关文章:

python - 重定向到另一个域的 Django View

http - 为什么网站重定向会出现在 Google 结果中?

.htaccess - 通用 htaccess 将 www 重定向到非 www

.htaccess - 强制浏览器忘记缓存的重定向?

c# - 了解 ASP .NET (WebForms) 中的错误处理

c# - 从 C# 将数据导出到 PDF 时出错

asp.net - 如何在不执行任何服务器故障的情况下更改 URL

windows - R 脚本自动化时的不同结果

url - 浏览器如何使用查询字符串缓存 301 重定向

asp.net - WCF 安全 - 我不明白的内容列表