2010-09-22 19 views
27

IIS7 UrlRewrite modülünü kullanıyorum. Kuralları web.config <system.webServer><rewrite> bölümünde kurdum. Web.config dosyasında bir dış xml dosyasında kuralları tanımlamanın bir yolu olup olmadığını bilmek istiyorum. Teşekkürler.IIS7 urlrewrite modülü - Harici xml dosyasındaki kurallar

+0

Bildiğim kadarıyla değil. Neden buna ihtiyacın vardı? – Remy

+3

@Remy: Geç yanıt, ancak çok sayıda yeniden yazma kuralınız olduğunda web.config'in okunabilirliğini artırır. Bu zaten benim için sebep. IIS'de – magnattic

+0

> = 7.5 URL Rewrite bileşenini buradan yüklemeyi unutmayın https://www.iis.net/downloads/microsoft/url-rewrite –

cevap

50

Evet, diğer yapabileceğiniz gibi harici bir dosyaya işaret etmek configSource özelliğini kullanabilirsiniz web.config bölümleri. web.config'de:

<rewrite> 
    <rules configSource="Rewrite.config" /> 
</rewrite> 

ve kurallar yapılandırma dosyasında

:

<rules> 
    <rule name="some rule"> 
     <!-- rule details here ---> 
    </rule> 
</rules> 

Hala bile kuralları düzenlemek için IIS yöneticisini kullanabilirsiniz ve sadece çalışacağız. Bu yaklaşımla bir küçük uyarı: bir değişiklik yaptığınızda ve böyle bir harici dosyayı kaydettiğinizde, web.config'de değişiklik yapmak gibi uygulamayı geri dönüştürmez. Bu nedenle, bir kural düzenliyorsanız ve bunun etkili olduğunu görmek istiyorsanız, bir düzenleme yaparak ve kaydettikten sonra web.config dosyasını elle kurmanız gerekir.

Başka bir başvuru: Moving IIS7 url rewrite section out of the web.config file

+0

Uygulamanın harici değişikliklerde geri dönüştürülmediğinden emin misiniz? [RestartOnExternalChanges] (http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.restartonexternalchanges.aspx) olarak adlandırılan yapılandırma bölümlerinde başka bir özellik vardır ve varsayılan olarak doğrudur. – magnattic

+0

@atticae RestartOnExternalChanges uygulamasının yalnızca kuralların yeniden yazılmadığı özel tanımlı

öğelerine uygulandığına inanıyorum. http://forums.iis.net/t/1155629.aspx O zamandan beri bir şey değiştiğinden emin değilim, bu konu 2009'dan beri ... –

+0

Ne yazık ki, Rewrite.config'deki IntelliSense çalışmıyor. Bu sorunu çözmenin bir yolu var mı? –

İlgili konular