Ich habe ein URL-Rewrite-Setup für saubere URLs in einem CMS und meine web.config sieht folgendermaßen aus:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Clean URLs" stopProcessing="true">
<match url="^([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="?id={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Grundsätzlich index.php?id=something
werden something
saubere URLs verwendet. Sehr einfach und es funktioniert gut.
Wie in CMS üblich, benötigt jedes Unterverzeichnis entweder <remove name="Clean URLs" />
oder <clear />
in seiner web.config, damit das Back-End nicht beschädigt wird, damit die Regel nicht vererbt wird.
Gibt es eine Möglichkeit, in der übergeordneten Regel anzugeben, dass sie überhaupt nicht von ihren untergeordneten Regeln geerbt werden soll, indem der Gültigkeitsbereich der Regel auf das aktuelle Verzeichnis beschränkt wird? So etwas <rule name="Clean URLs" stopProcessing="true" inherit="no">
wäre episch.