У меня есть настройка перезаписи URL для чистых URL в CMS, и мой web.config выглядит так:
<?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>
Это в основном превращается index.php?id=something
в something
чистые URL. Очень просто и работает хорошо.
Как это часто бывает в CMS, для предотвращения выхода из строя серверной части каждый подкаталог требует либо один, <remove name="Clean URLs" />
либо <clear />
свой web.config, поэтому правило не наследуется.
Есть ли способ указать в родительском правиле, что оно не должно быть унаследовано его потомками, ограничив область действия правила только текущим каталогом? Нечто подобное <rule name="Clean URLs" stopProcessing="true" inherit="no">
будет эпическим.