2016-04-01 13 views
4

çalışmıyor koşullarını olumsuzlamak aşağıdaki kurallara göre (YeniSite *.):IIS URL Rewrite Ben yeni web sitesine eski web (oldsite.com) bazı sayfalara yönlendirmek istiyorum

  • Tüm birinci düzey Çocuklar (/ sv,/no,/da, vb.) ilgili meslektaşlarına, yani newsite.se, newsite.no, newsite.dk, vb. yönlendirmelidir. Diğer tüm çocuklar/torunlar, Yeni siteler de,/page1 ve/page2 ve onun soyundan gelenler hariç . Ben (bu durumda sv için) aşağıdaki kuralları oluşturduk Bunun için

:

<rule name="Redirect /sv to .se" stopProcessing="true"> 
    <match url="^sv/?$" /> 
     <action type="Redirect" url="http://newsite.se" /> 
</rule> 
<rule name="Redirect /sv/* except some pages" stopProcessing="true"> 
    <match url="^sv/.+" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_URI}" pattern="^sv/page1(.*)" negate="true" /> 
     <add input="{REQUEST_URI}" pattern="^sv/page2(.*)" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="http://newsite.se" /> 
</rule> 

ilk kuralı çalışıyor ancak ikinci. Sorun şu ki, benim olumsuz koşulların işe yaramıyor gibi görünüyor. Oldsite.com/sv/page1 adresini girdiğimde hala yenisite.se adresine yönlendiriliyordum. Belki de olumsuz koşulların nasıl çalıştığını yanlış anlamışımdır, ancak ikinci kuralın her iki koşul doğruysa (yanlış olarak değerlendirilirse), yani REQUEST_URI 'un eşleşmesi/sayfa1 ve/sayfa2 olmaması durumunda eylemi yürütmesi gerekmez mi?

cevap

5

Konsepti çok iyi anlıyorsunuz.

tek sorun {REQUEST_URI} daima / ile başlamak olduğunu ve son olarak yepyeni bir yanlış pozitif olması url asla ^sv/page1(.*) gibi bir desenle eşleşir.

Bu nedenle, desene önde gelen kesik çizgiler eklemeniz gerekir.

<add input="{REQUEST_URI}" pattern="^/sv/page1(.*)" negate="true" /> 
<add input="{REQUEST_URI}" pattern="^/sv/page2(.*)" negate="true" /> 
İlgili konular