CMSでクリーンURLのURL書き換えセットアップがあり、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で一般的であるように、バックエンドの破損を防ぐために、各サブディレクトリにはweb.configのいずれ<remove name="Clean URLs" />
か<clear />
が必要であるため、ルールは継承されません。
何らかの方法でルールのスコープを現在のディレクトリのみに制限することにより、親のルールで、子によってまったく継承されないように指定する方法はありますか?そのようなもの<rule name="Clean URLs" stopProcessing="true" inherit="no">
は壮大です。