2012-05-18 1 views
1

Я хочу сделать переписывание URL с помощью модуля UrlRewriteNet.UrlRewriting.Net не работает даже с простой перепиской

Пока я добавил все необходимые настройки конфигурации, ничего не предпринимается даже для простой перезаписи.

web.config:

<configuration> 
    <configSections> 
     <!-- URL Rewriting.NET --> 
     <section name="urlrewritingnet" 
      restartOnExternalChanges="true" 
      requirePermission="false" 
      type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" /> 
    </configSections> 
    <system.web> 
     <httpModules> 
      <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/> 
     </httpModules> 
    </system.web> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="UrlRewriteModule"/> 
      <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
     </modules> 
    </system.webServer> 
    <urlrewritingnet 
     xmlns="http://www.urlrewriting.net/schema/config/2006/07"> 
     <rewrites> 
      <add name="GeneralRewrite" 
       virtualUrl="^~/Default.aspx" 
       rewriteUrlParameter="ExcludeFromClientQueryString" 
       destinationUrl="~/MyDefault.aspx" 
       ignoreCase="true" 
      /> 
     </rewrites> 
    </urlrewritingnet> 
</configuration> 

Ничего больше не требуется, насколько я понимаю, просто переписать страницу Deafault.aspx в MyDefault.aspx. Поэтому я бы ожидал, что мой URL-адрес от https://server.address/Project.SiteName/Default.aspx просто станет https://server.address/Project.SiteName/MyDefault.aspx.

Я использую разработку на своем локальном компьютере разработки IIS 7 Windows 7, но сервер выпуска выпуска будет IIS 6, поэтому я включил обе конфигурации в web.config.

К сожалению, по какой-либо причине нет ошибок, проверьте IIS и убедитесь, что модуль зарегистрирован в разделе «Модули», но двигатель никогда не запускается!

Есть что-то, что я пропустил здесь?

+0

У вас действительно есть страница MyDefault.aspx? Это правило гласит, что если кто-то входит в URL Default.aspx (при условии, что эта страница не существует), то она будет отображаться в MyDefault.aspx - URL останется неизменным. –

+0

Что мне нужно сделать на самом деле Кевин, когда этот пользователь вводит URL Default.aspx для отображения в адресной строке MyDefault.aspx. Кажется, что я что-то упустил ..... можете ли вы предоставить правило для нужного переписывания, в котором я нуждаюсь? –

+0

Это не так, как работает переписывание URL-адреса. Возможно, у вас может быть грязный URL-адрес, такой как default.aspx? Q1 = переменная, которую трудно запомнить и набирать для пользователя, поэтому вы можете создать правило перезаписи, которое позволяет им вводить/variable/MyFriendlyName.aspx правило перезаписи отображает это обратно к первому URL-адресу, чтобы страница была обработана соответствующим образом, но URL-адрес, который видит пользователь, не изменяется. –

ответ

3

сделать выше следующим образом

<configuration> 
    <configSections> 
    <section name="urlrewritingnet" 
    restartOnExternalChanges="true" 
    requirePermission ="false" 
    type="UrlRewritingNet.Configuration.UrlRewriteSection, 
    UrlRewritingNet.UrlRewriter" /> 
    </configSections> 
</configuration> 

затем идет переписывание разделов переписать URL-адресов

<urlrewritingnet> 
    <rewrites> 

ваши URLs в rewite будет отображаться здесь .....

</rewrites> 
    </urlrewritingnet> 

и, наконец, нужно http-модуль, который будет прослушивать запросы.

<system.web> 
    <httpModules> 
    <add name="UrlRewriteModule" 
    type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" /> 
    </httpModules> 
</system.web> 

Кроме этого конфигурация не нужно делать в web.config просто ссылаться на DLL (обязательный) и XSD-файл для IntelliSense http://blog.vizioz.com/2009/11/add-intellisense-when-using-url.html

+0

THX для этого. Помогли много. –

0

Открыть Web.config и добавить модули

<configuration> 
<system.webserver> 

<modules> 

<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/> 
<remove name="Session"/> 
<add name="Session" type="System.Web.SessionState.SessionStateModule"/> 

</modules> 

</system.webServer> 
</configuration> 
Смежные вопросы