【问题标题】:Web.config httpredirect is inserting a backslash when I don't want one当我不想要一个反斜杠时,Web.config httpredirect 正在插入一个反斜杠
【发布时间】:2013-06-11 13:41:17
【问题描述】:

我正在将网站更新为更动态的网站版本。在新网站中,我对内容的每一次更改都使用哈希标签而不是新页面。

我正在使用目录中的 web.config 文件进行重定向,但它添加了一个反斜杠。有没有办法避免这种情况?我已经在重定向中处理它,但我觉得它有点笨拙。

这是一个示例 web.config

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <httpRedirect enabled="true" destination="/legal/#!terms-of-use" />
  </system.webServer>
</configuration>

编辑:值得一提的是,不是转到“/legal/#!terms-of-use”,而是转到“/legal/#!terms-of-use/”,注意末尾的反斜杠。

【问题讨论】:

  • 这作为一条路径没有多大意义,不应该是“/legal#!terms-of-use”吗?
  • 一点也不。 IIS 只会将您的建议重定向到 /legal/#!terms-of-use。因为路径实际上是 /legal/default.aspx#!terms-of-use。 default.aspx 是该文件夹的默认页面,因此路径的正确语法使用反斜杠,因为“default.aspx”由 iis 处理。
  • 那么,如果你把它改成那个(添加default.aspx)呢?猜测这是混淆代码的默认文档路径构造。顺便说一句,您是否查看了位置标题并实际看到了尾部斜杠以确保浏览器没有以某种方式添加它?
  • 还可以尝试在 httpRedirect 元素上设置exactDestination="true" 属性
  • 这不是最佳实践。 URL 应该易于阅读和索引。添加 default.aspx 会在 URL 中添加一个不必要的字段,这会使 SEO 复杂化并且对客户来说不太满意。至于你问题的第二部分,是的。该网址(以及许多喜欢的网址)链接在整个网站的各个位置。它被添加为重定向的一部分,因为 httpredirect 没有看到文件扩展名。

标签: c# asp.net .net webforms web-config


【解决方案1】:

在您的重定向元素中打开exactDestination,如下所示:

<httpRedirect enabled="true" destination="/legal/#!terms-of-use" exactDestination="true" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多