根据我的另一个问题UrlRewriter.NET with .NET 4.0 not working我无法让 UrlRewriter.NET 工作。
所以现在我尝试了 ManagedFusion。它可以在本地工作,但不能在服务器上工作,但错误是不同的,我觉得这可能真的有效,而且我在配置中做错了。
所以我的 web.config 设置是(精简版)
<configuration>
<configSections>
<section name="managedFusion.rewriter" type="ManagedFusion.Rewriter.Configuration.ManagedFusionRewriterSectionGroup"/>
</configSections>
<managedFusion.rewriter xmlns="http://managedfusion.com/xsd/managedFusion/rewriter">
<rules engine="Apache">
<apache defaultFileName="ManagedFusion.Rewriter.txt" />
</rules>
<rewriter>
<proxy useAsyncProxy="true" />
</rewriter>
</managedFusion.rewriter>
<system.web>
<identity impersonate="false" />
<httpModules>
<add name="RewriterModule" type="ManagedFusion.Rewriter.RewriterModule, ManagedFusion.Rewriter"/>
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="RewriterModule" type="ManagedFusion.Rewriter.RewriterModule, ManagedFusion.Rewriter" />
</modules>
<handlers>
<add name="RewriterProxyHandler" preCondition="integratedMode" verb="*" path="RewriterProxy.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
<defaultDocument enabled="false" />
</system.webServer>
我的 ManagedFusion.Rewriter.txt 是
RewriteEngine On
RewriteBase /
#
# Campaign
RewriteRule ^/Campaign/List /Campaign/List.aspx [NC]
现在这在我的本地机器(Visual Studio 2010)上运行良好,但是当我上传它时,我得到一个 404,说它找不到 /Campaign/List.aspx。
最重要的是,它还用于 SSL,这是我不想要的,因为该帐户上的 SSL 证书用于不同的子域,因此会引发 SSL 错误。
有什么我做错了吗?看来这次 URL 模块正在处理所有请求,这看起来好像我以某种方式错误地配置了它。
附加信息
运行 IIS 7.0 - 集成管道
.NET 4.0