2017-02-06 11 views
0

мне нужно перенаправить много URL, как следующийПеренаправление в IIS 7.5/8 с регулярным выражением

http://localhost/OmniService/foto/18443151-810079.jpg 

так, в моем web.config я установил следующее регулярное выражение:

<rewrite> 
    <providers> 
     <provider name="DB" type="DbProvider, Microsoft.Web.Iis.Rewrite.Providers, Version=7.1.761.0, Culture=neutral, PublicKeyToken=0545b0627da60a5f"> 
      <settings> 
       <add key="ConnectionString" value="Driver={SQL Server Native Client 10.0};Data Source=localhost\sqlexpress;Initial Catalog=RewriteDB;Integrated Security=True;Server=localhost;uid=sa;pwd=working2014" /> 
       <add key="StoredProcedure" value="RewriteDB.dbo.GetRewrittenUrl" /> 
       <add key="CacheMinutesInterval" value="0" /> 
      </settings> 
     </provider> 
    </providers> 
    <rules> 
     <rule name="DbProviderTest" stopProcessing="true"> 
      <match url="(OmniService/foto/([0-9]+)-([0-9]+).jpg)" /> 
      <!--<conditions> 
       <add input="{DB:{R:1}}" pattern="(.+)" /> 
      </conditions>--> 
      <action type="Redirect" url="(Omniservice/foto/2017/02/02/18443151-810079.jpg)" /> 
     </rule> 
    </rules> 
</rewrite> 

, но это не захватило, несмотря на тестирование с IIS говорит, что это нормально: enter image description here

Если я использую <match url="(.*)" /> тогда я перенаправлен на исправленный новый URL, но ничего не видно, потому что в нем указано, что слишком много перенаправлений.

ответ

1

Правило работает для меня, но оно перенаправляет меня на http://localhost/(Omniservice/foto/2017/02/02/18443151-810079.jpg), возможно, вам нужно удалить() из атрибута url в узле действия? Вы даже не видите перенаправление 301 с вышеуказанным правилом?

+0

Бесполезно. Это то, что я получаю сейчас: 'HTTP ERROR 500' Я также пытался с FileMapProvider вместо базы данных, но ... ничего. URL всегда старый, он не перенаправлен, –