IIS 7.0 REWRITE Regola per catturare cartelle dinamiche con eccezioni
-
13-11-2019 - |
Domanda
Sto cercando di creare una regola di riscrittura che cattura tutti i www.domain.com/
La cosa è che ci dovrebbero essere alcune eccezioni, in cui la regola di riscrittura non dovrebbe applicarsi, dove la richiesta effettivamente dovrebbe aprire / guardare in una cartella reale.Alcune cartelle riservate, potresti chiamarla.Esempi di cartelle in cui la regola deve essere ignorata: "Immagini", "include" e "admin".
Ho una regola di riscrittura ora, quel tipo di fa il lavoro, ma è solo per i nomi delle cartelle dinamici con esattamente 2 caratteri.La nuova regola non dovrebbe avere alcuna limitazione, e anche - per essere esigente, dovrebbe essere possibile lasciare un nome di una cartella dinamica e avere il resto del lavoro dell'URL di riscrittura.: -)
.<rule name="Langrewrite" enabled="true">
<match url="^([a-z]{2,2})/([_0-9a-zA-Z]+)\.html" />
<conditions logicalGrouping="MatchAll" />
<action type="Rewrite" url="/index.php?navItem={R:2}&lang={R:1}" />
</rule>
Soluzione
La tua domanda è un po 'vaga in luoghi, ma cercherà di indovinare il tuo requisito:
<rule name="DynamicFolder" stopProcessing="true">
<match url="^(?!(?:images|includes|admin))(.+?)/" />
<action type="Rewrite" url="/index.php?folder={R:1}" />
</rule>
. Altri suggerimenti
Potrebbe essere esattamente ciò che Tomek ha detto, ma è così che è finito:
<rule name="Dynamic Folders" stopProcessing="true">
<match url="^(?!errorPages/|files/|gfx/)([a-zA-Z-]*)/?([a-zA-Z-]*)/([_0-9a-zA-Z]*)(\.html|\.htm)?" />
<action type="Rewrite" url="/index.php?var1={R:1}&var2={R:2}&var3={R:3}&var4={R:4}" />
</rule>
.