2015-04-17 16 views
7

Tüm uygulamalarım için bir yönlendirici işlevi görmesi gereken bir ARR sunucusu altında çalışmak istediğim bir uygulama havuzum var. Şelalede uygulanması gereken bir dizi kural tanımladım, ancak bir şey uygun şekilde çalışmıyor.IIS ARR kuralları, uygulamalara izleyen eğik çizgi eklemede beklendiği gibi çalışmıyor

ilk kuralı diğer kuralların yeniden yazma URL ile benim iç DNS sunucusu için çözmek için benim uygulamaları haritalandırmalıdır, bölü çizgisi işlemek gerekir, ancak sorun ilk döneminde ne gibi görünüyor.

Varsayılan davranış şu ki, eğer uygulamayı http://myapp ile başlatmaya çalışırsam 404 kodunu döndürürsem, eğer eğik çizgi ekleyerek çalıştırmayı denediysem (http://www.myapp/) her şey iyi çalışıyor. Yani temelde benim kuralım, eğik çizgi olmadan Url kalıplarını kontrol etmelidir: kaynak bir dizin ise, URL'nin sonuna eğik çizgi eklemelidir. Bu uçta/olmadan url yakalamak olmalı ve başarılı bir şekilde test

.*[^/]$ 

:

Yani url yakalamak için desen aşağıdaki normal ifadedir. Bir dizin ise Regexp'i eşleşen her url için

, ben kontrol etmelidir ve durumda, o yüzden eğik çizgi belirlesin:

{REQUEST_FILE} -> Is a directory 

Ancak bu işe yaramaz. Ben de hiçbir başarı ile aşağıdaki kural eklemek çalıştı: (çok yeniden yazma aynı davranışa yol açar) için

Yönlendirme:

{REQUEST_FILE} -> Is not a file 

kural uygulamak şudur

{R:O}/ 

Bu, URL'leri/adreslerime eklemiyor gibi görünüyor ve hangi adımların başarısız olduğunu kontrol edemiyorum.

mywebapp/* redirect to www.mydnsappaddress/{R:1} 

EDIT: Bir sonraki kurallar temelde bu modeli takip Sana kuralların metinsel versiyonu görmek için web.config örneği ekleyin.

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <clear /> 
       <rule name="Trailing Slash" enabled="false" stopProcessing="true"> 
        <match url=".*[^/]$" /> 
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
         <add input="{REQUEST_FILENAME}" matchType="IsFile" /> 
        </conditions> 
        <action type="Redirect" url="{R:0}/" /> 
       </rule> 
       <rule name="app1" enabled="false" patternSyntax="Wildcard"> 
        <match url="sites/doc/*" /> 
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
        <action type="Rewrite" url="http://mypersonaldnsaddress/{R:0}" /> 
       </rule> 
       <rule name="ASTCO portale NWS" enabled="true" patternSyntax="Wildcard"> 
        <match url="portale/*" /> 
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
        <action type="Rewrite" url="http://mypersonaldnsaddress/{R:0/{R:0}" /> 
       </rule> 

      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

Kullandığınız kuralları veya en azından bir örneği listeleyebilir misiniz? Web.config dosyanızda XML olarak görünmelidir. –

+0

Onları ana gönderiye ekledim. – lateralus

cevap

0

ben bariz sormak zorunda: senin örneğin kasten false için enabled set var?

Bu çalışmayı tam istediğiniz gibi yapabildim: eğer dizin varsa, eğer olmasa bile sonunda bir eğik çizgi ekleyin.

<rule name="Trailing Slash" enabled="true" stopProcessing="true"> 
    <match url=".*[^/]$" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" /> 
    </conditions> 
    <action type="Redirect" url="{R:0}/" /> 
</rule> 
+0

Şimdi deneyeceğim, teşekkürler. – lateralus

İlgili konular