【问题标题】:ASP.NET 301 redirect on www.subdomain to subdomainASP.NET 301 在 www.subdomain 上重定向到子域
【发布时间】:2014-04-23 07:04:52
【问题描述】:

我想在 web.config 中从 www.subdomain.domain.com 重定向到 subdomain.domain.com

我在我的 web.config 中使用 Urlrewrite。

这是我的规则,这有什么问题?它不起作用..

  <rule name="Redirecton" patternSyntax="ECMAScript" stopProcessing="true">
      <match url=".*" />
      <conditions>
          <add input="{HTTP_HOST}" pattern="^www.*.domain.com*" />
      </conditions>
      <action type="Redirect" url="http://{C:1}.domain.com/{C:2}" />
  </rule>

谁能帮我解决这个问题?

编辑: 它在页面中显示此错误:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。 请联系服务器管理员,告知错误发生的时间以及您所做的任何可能导致错误的事情。

服务器错误日志中可能会提供有关此错误的更多信息。

【问题讨论】:

  • 会发生什么?根本没有重定向还是重定向错误?
  • @chrfin 我为您更新错误消息。谢谢
  • 您是否可能需要使用从零开始的索引? url="http://{C:0}.domain.com/{C:1}"?
  • @chrfin 我用过但不能再用了..
  • @chrfin 我将模式语法更改为 waildcard ,现在它不显示内部服务器错误但它不执行任何操作,我的意思是它在子域之前显示 www ..

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


【解决方案1】:

以下应该有效 - 至少它在我的简短测试中有效:

<rule name="Redirecton" patternSyntax="ECMAScript" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^www\.(.*)\.test\.at(.*)" />
    </conditions>
    <action type="Redirect" url="http://{C:1}.test.at/{R:0}" />
</rule>

我改变了什么:

  • . 转义为\.
  • 使用括号创建捕获
  • 使重定向目标适应工作 - 我不知道为什么会这样:
    • {C:0} 是完整的输入字符串
    • {C:1} 是第一次捕获
    • {C:2} 为空
    • {R:0} 是第二次捕获

【讨论】:

    猜你喜欢
    • 2013-08-18
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2013-09-19
    • 2012-01-19
    • 2018-09-13
    • 1970-01-01
    相关资源
    最近更新 更多