2012-05-16 23 views
10

IIS 7.5 ve URL Yeniden Yazımı'nı kullanıyorum. IIS içindeIIS 7.5 URL Yeniden Yaz - Bir URL'den Klasörü Yeniden Yaz

webroot 
webroot/LegacySite 

hem Webroot'un ve eski ayrılır App-Klasörler:

ben bu şekilde dosya hiyerarşisi ile bir web sitesi var.

için yeniden yazılır http://mysite.co/LegacySite/page.aspx ise, şu anda:


yüzden benim URL'leri yeniden gerekir düzgün çalışmıyor, eksik olduğum şeyi işaret edebilir misin?

<?xml version="1.0" encoding="UTF-8"?> 
    <configuration> 
     <system.webServer> 
      <rewrite> 
       <rules> 
        <rule name="MyRole" stopProcessing="true"> 
         <match url=".*" /> 
         <conditions> 
          <add input="{HTTP_HOST}" pattern="^mysite.com" /> 
          <add input="{PATH_INFO}" pattern="^\LegacySite\" negate="true" /> 
         </conditions> 
         <action type="Rewrite" url="\LegacySite\{R:0}" /> 
        </rule> 
       </rules> 
      </rewrite> 
     </system.webServer> 
    </configuration> 

cevap

16

şu çalışmalıdır:

<rule name="MyRole" stopProcessing="true"> 
    <match url="LegacySite/(.*)" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^mysite.com$" /> 
    </conditions> 
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" /> 
</rule> 

Sen ana bilgisayar adını kontrol etmek için şartlı damla isteyebilirsiniz. Bu gerçekten önemli mi? Yönlendirmenin gerçekleşmesini istemediğiniz web sitesine bağlı başka alan adınız var mı? Gereksiz görünüyor. Muhtemelen sadece gerekir: Ben yeniden yazılması URL'ye herhangi biri (isteğe bağlı) sorgu dizesi parametrelerini geçirmek için appendQueryString="true" ekledik

<rule name="MyRole" stopProcessing="true"> 
    <match url="LegacySite/(.*)" /> 
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" /> 
</rule> 

.

+0

Cevabınız için teşekkürler Marco – GibboK