DNN RewriterConfig 重定向规则
DNN RewriterConfig redirection Rule
我尝试将 www.myDNNSite.com/hastinfo/[...] 重定向到 DNN 7.x
中的 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/</SendTo>
</RewriterRule>
如果有 .在 hastinfo 之后,所以:
- www.myDNNSite.com/hastinfo/测试 -> 确定 172.16.244.43:83/测试
- www.myDNNSite.com/hastinfo/myhandler.axd -> KO 错误 404 且无重定向
如果有 .成立。
即使 . (点)出现在 url ?
编辑:
我的 objective 使用此重定向是为了让我的开发和生产环境具有相同的终点。我在前端有三台服务器,www.myDNNSite.com/hastinfo 后面的 Web 服务指向三台不同的服务器以平衡负载。
在更新到 DNN 7.X 之前,我使用的是完成这项工作的 ManagedFusionRewriter。
但是它从 2009 年开始没有更新,现在使用 IIS 8.5 我看起来是从配置文件进行重定向的更好方法。
编辑 2:
我尝试添加 IIS Mod 在我的 IIS 8.5 中重写并写入 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>
没有成功...这里是 Failed Tracing:
将 IIS 重定向与 DNN 友好 Url 提供商结合使用通常会导致灾难。
在这种情况下,您遇到问题的原因很可能是 ASP.NET 进程正在捕获 .axd,这阻止了重写的发生。
根据你的目标,你能解释一下真正的目标吗?这个答案而不是 "do this" 的原因是使用 DNN 重定向到非标准端口也会导致问题,因为在 web.config 中有一个 "usePortNumber" 的设置,你如果使用非标准端口,将需要打开。
我终于找到了使它起作用的方法。
感谢:http://blogs.msdn.com/b/asiatech/archive/2011/08/25/return-404-4-not-found-when-url-rewrite.aspx
您需要安装应用程序请求路由并启用代理,然后它将与 URL 重写到远程服务器(无论它们在哪里或什么)一起工作,因为路由会处理这个问题。
我尝试将 www.myDNNSite.com/hastinfo/[...] 重定向到 DNN 7.x
中的 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/</SendTo>
</RewriterRule>
如果有 .在 hastinfo 之后,所以:
- www.myDNNSite.com/hastinfo/测试 -> 确定 172.16.244.43:83/测试
- www.myDNNSite.com/hastinfo/myhandler.axd -> KO 错误 404 且无重定向
如果有 .成立。
即使 . (点)出现在 url ?
编辑:
我的 objective 使用此重定向是为了让我的开发和生产环境具有相同的终点。我在前端有三台服务器,www.myDNNSite.com/hastinfo 后面的 Web 服务指向三台不同的服务器以平衡负载。 在更新到 DNN 7.X 之前,我使用的是完成这项工作的 ManagedFusionRewriter。
但是它从 2009 年开始没有更新,现在使用 IIS 8.5 我看起来是从配置文件进行重定向的更好方法。
编辑 2:
我尝试添加 IIS Mod 在我的 IIS 8.5 中重写并写入 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>
没有成功...这里是 Failed Tracing:
将 IIS 重定向与 DNN 友好 Url 提供商结合使用通常会导致灾难。
在这种情况下,您遇到问题的原因很可能是 ASP.NET 进程正在捕获 .axd,这阻止了重写的发生。
根据你的目标,你能解释一下真正的目标吗?这个答案而不是 "do this" 的原因是使用 DNN 重定向到非标准端口也会导致问题,因为在 web.config 中有一个 "usePortNumber" 的设置,你如果使用非标准端口,将需要打开。
我终于找到了使它起作用的方法。
感谢:http://blogs.msdn.com/b/asiatech/archive/2011/08/25/return-404-4-not-found-when-url-rewrite.aspx
您需要安装应用程序请求路由并启用代理,然后它将与 URL 重写到远程服务器(无论它们在哪里或什么)一起工作,因为路由会处理这个问题。