У мене налаштування перезапису 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">
було б епічним.