Url Rewriter适用于localhost,但不适用于生产服务器

时间:2009-12-01 03:48:55

标签: asp.net iis-6 urlrewriter.net

我已经让URLRewriter完美地在我的localhot上工作了,但是在制作中我遇到了404错误。

我正在使用IIS 6,根据我的阅读,这应该可以正常工作。

以下是我在web.config中的内容:

<rewriter>
  <rewrite url="~/(\d+)$"       to="~/Items/Details.aspx?ItemId=$1" />
  <rewrite url="~/Items/(\d+)$" to="~/Items/Details.aspx?ItemIId=$1" />
</rewriter>

<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />


<httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>

</httpModules>

有没有人有类似的问题并解决了?

谢谢!

2 个答案:

答案 0 :(得分:0)

<rewrite url="~/Items/(\d+)$" to="~/Items/Details.aspx?ItemIdId=$1" />

GET参数是否为ItemId?此刻它是ItemIdId。

希望这有帮助。

答案 1 :(得分:0)

这是因为您需要在生产服务器上设置通配符映射。 IIS6只运行某些文件格式,如.aspx等,但不会将无扩展名的URL映射到asp.net管道。

本教程将回答您的问题:

注意:您需要远程桌面访问您的服务器,因此这在共享托管环境中是不可能的,除非您的主机愿意代表您进行设置。