J'ai une configuration de réécriture d'URL pour des URL propres dans un CMS et mon web.config ressemble à ceci:
<?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>
Il se transforme essentiellement index.php?id=something
en something
URL propres. Très simple et ça marche bien.
Comme cela est courant dans les CMS, pour éviter que le back-end ne se casse, chaque sous-répertoire requiert l'un <remove name="Clean URLs" />
ou l' autre <clear />
de son web.config afin que la règle ne soit pas héritée.
Existe-t-il un moyen de spécifier dans la règle parent qu'elle ne devrait pas du tout être héritée par ses enfants en limitant en quelque sorte la portée de la règle au seul répertoire actuel? Quelque chose comme ça <rule name="Clean URLs" stopProcessing="true" inherit="no">
serait épique.