【问题标题】:DNN RewriterConfig redirection RuleDNN RewriterConfig 重定向规则
【发布时间】:2017-03-25 05:36:17
【问题描述】:

我尝试在 DNN 7.x 中将 www.myDNNSite.com/hastinfo/[...] 重定向到 http://172.16.244.43:83/[...]

为此,我在 SiteUrls.config 中添加了一条规则,因为此博客显示 https://bertcraven.wordpress.com/2008/05/21/quick-n-dirty-redirects-in-dotnetnuke/

<RewriterRule>
     <LookFor>[^?]*/hastinfo/(.*)</LookFor>
     <SendTo>http://172.16.244.43:83/$1</SendTo>
</RewriterRule>

如果有 .在 hastinfo 之后,所以:

  • www.myDNNSite.com/hastinfo/test -> OK 172.16.244.43:83/test
  • www.myDNNSite.com/hastinfo/myhandler.axd -> KO 错误 404 且无重定向

如果有 .成立。

即使 . (点)存在于 url 中?

编辑:

我进行此重定向的目的是让我的开发和生产环境具有相同的端点。我在前端有三台服务器,www.myDNNSite.com/hastinfo 后面的 Web 服务指向三台不同的服务器来负载均衡费用。 在更新到 DNN 7.X 之前,我使用的是 ManagedFusionRewriter 来完成这项工作。

但它从 2009 年开始没有更新,现在使用 IIS 8.5 我看起来是从配置文件进行重定向的更好方法。

编辑 2:

我尝试在我的 IIS 8.5 中添加 IIS Mod Rewrite 并在 Web.config 中写入:

<rewrite>      
  <rules>
  <rule name="Imported Rule 101" stopProcessing="true">
    <match url="^hastinfo/(.*)" />
     <action type="Rewrite" url="http://172.16.244.43:83/{R:1}" appendQueryString="true" />
  </rule>

没有成功......这里是失败的追踪:

【问题讨论】:

    标签: c# url-rewriting dotnetnuke


    【解决方案1】:

    将 IIS 重定向与 DNN 友好 URL 提供程序结合使用通常会导致灾难。

    在这种情况下,您遇到问题的原因很可能是 .axd 被 ASP.NET 进程捕获,从而阻止了重写的发生。

    根据您的目标,您能解释一下真正的目标吗?这个答案而不是“这样做”的原因是使用 DNN 重定向到非标准端口也会导致问题,因为您希望在 web.config 中设置“usePortNumber”如果使用非标准端口。

    【讨论】:

    • 有没有办法在 ASP.NET “捕获”它之前进行 URL 重写?
    【解决方案2】:

    我终于找到了让它起作用的方法。

    感谢:http://blogs.msdn.com/b/asiatech/archive/2011/08/25/return-404-4-not-found-when-url-rewrite.aspx

    您需要安装应用程序请求路由并启用代理,然后它将与远程服务器的 URL 重写一起使用(无论它们在哪里或它们在哪里),因为路由会处理这些。

    http://www.iis.net/download/ApplicationRequestRouting

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 1970-01-01
      • 2015-12-22
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多