Url Rewriter работает на локальном хосте, но не на рабочем сервере - PullRequest
1 голос
/ 01 декабря 2009

Я заставил 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 голосов
/ 16 ноября 2010

Это потому, что вам нужно настроить сопоставление с подстановочными знаками на рабочем сервере. IIS6 запускает только определенные форматы файлов, такие как .aspx и т. Д., Но не отображает URL без расширений в конвейер asp.net.

Этот туториал ответит на ваш вопрос:

ПРИМЕЧАНИЕ. Вам потребуется удаленный доступ к рабочему столу на вашем сервере, так что это невозможно в средах с общим хостингом, если ваш хост не желает устанавливать это от вашего имени.

0 голосов
/ 01 декабря 2009
<rewrite url="~/Items/(\d+)$" to="~/Items/Details.aspx?ItemIdId=$1" />

Это параметр GET должен быть ItemId? Потому что на данный момент это ItemIdId.

Надеюсь, это поможет.

...