Saya memiliki pengaturan penulisan ulang URL untuk URL bersih dalam CMS dan web.config saya terlihat seperti ini:
<?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>
Itu pada dasarnya berubah index.php?id=something
menjadi something
untuk URL bersih. Sangat sederhana dan bekerja dengan baik.
Seperti biasa dalam CMS, untuk mencegah back-end dari melanggar, setiap subdirektori memerlukan salah satu <remove name="Clean URLs" />
atau <clear />
di web.config sehingga aturan tidak diwarisi.
Apakah ada cara untuk menentukan dalam aturan induk bahwa itu tidak boleh diwarisi oleh anak-anaknya sama sekali dengan entah bagaimana membatasi ruang lingkup aturan hanya pada direktori saat ini? Sesuatu seperti <rule name="Clean URLs" stopProcessing="true" inherit="no">
akan menjadi epik.