2012-05-16 21 views
10

Używam przekierowania IIS 7.5 i URL.Przeksięskiwanie adresu URL w IIS 7.5 - przepisywanie folderu z adresu URL

Mam stronę internetową z hierarchii plików w następujący sposób:

webroot 
webroot/LegacySite 

zarówno Webroot i dziedzictwo są oddzielone App-foldery w IIS.


muszę przerobić moje adresy URL tak:

Poniżej moim Web.Conf obecnej w folderze webroot, w tej chwili nie działa poprawnie, czy możesz wskazać mi, czego mi brakuje?

<?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> 

Odpowiedz

16

Poniższa powinno działać:

<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> 

Możecie chcesz usunąć warunkowego sprawdzania nazwy hosta. Czy to naprawdę ważne? Czy masz inne nazwy domen powiązane z tą witryną, dla której nie chcesz, aby przekierowanie miało miejsce? Wydaje się niepotrzebne. Prawdopodobnie wystarczy:

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

Dodałem appendQueryString="true" przekazać wszelkie parametry (opcjonalnie) ciąg kwerendy do przepisanego URL.

+0

Dzięki Marco za odpowiedź – GibboK