Ecco quello che ho schierato:IIS Rewrite Module e sub applicazioni
testRedirect
è un sito di vuoto. Tutte le sotto-applicazioni sono sotto-cartelle che sono state convertite in applicazione. Tutti loro sono siti ASP .Net MVC.
Ecco cosa voglio installare:
Http://localhost/
deve mostrare il contenuto diSiteName1
senza visualizzareHttp://localhost/SiteName1/
nella barra indirizzo (deve rimanereHttp://localhost/
)Http://localhost/SiteName1/
deve mostrare il contenuto diSiteName1
senza visualizzareHttp://localhost/SiteName1/
nella barra degli indirizzi (deve rimanereHttp://localhost/
)Http://localhost/SiteName2/
mostra il contenuto diSiteName2
e displayHttp://localhost/SiteName2/
nella barra di indirizzo (stesso comportamento perSiteName3
&SiteName4
e altri siti ....)
In altre parole, voglio il mio SiteName1
di agire come una casa sito
Quello che ho provato finora, è qualcosa di simile alla risposta fornita da @cheesemacfly here:
<rules>
<rule name="Redirect if SiteName1" stopProcessing="true">
<match url="^SiteName1/(.*)$" />
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="Rewrite to sub folder">
<match url="^.*$" />
<action type="Rewrite" url="SiteName1/{R:0}" />
</rule>
</rules>
E le grandi opere per Case1 & 2 ma non gli altri.
Ho provato ad aggiungere regole come questo, ma non era successo ...
<rule name="if_not_SiteName1" stopProcessing="true">
<match url="^SiteName1/(.*)$" negate="true" />
<action type="None" />
</rule>
Si sta utilizzando un sistema di routing? Perché se no, potresti essere in grado di utilizzare la condizione 'IsFile/IsDirectory' (quindi se il percorso richiesto, assumiamo' http: // localhost/SiteName2/default.aspx' o 'http: // localhost/SiteName2 /' , punta a un vero file/cartella, quindi non si attiva la regola). Funzionerebbe nel tuo caso? – cheesemacfly
@cheesemacfly Uso il routing, questi sono i siti MVC ASP .Net. Ho aggiornato la mia domanda. – MaxSC