【问题标题】:Url Rewriter works on localhost but not on production serverUrl Rewriter 适用于 localhost 但不适用于生产服务器
【发布时间】:2009-12-01 03:48:54
【问题描述】:

我已经让 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>

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

谢谢!

【问题讨论】:

  • 您确定 UrlRewriter DLL 已正确安装在您的生产服务器上吗?您是否在 Windows 事件日志中看到任何错误?
  • 已安装?它进入垃圾箱。什么安装?

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


【解决方案1】:
<rewrite url="~/Items/(\d+)$" to="~/Items/Details.aspx?ItemIdId=$1" />

那个 GET 参数是否意味着 ItemId?因为现在是 ItemIdId。

希望这会有所帮助。

【讨论】:

  • 不只是一个错字,就像我说的,适用于本地主机,而不是生产
【解决方案2】:

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

本教程将回答您的问题:

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

【讨论】:

  • 哎呀,才意识到这个问题已经有一年了...:P
猜你喜欢
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 2020-09-03
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多