我有一个用于CMS中干净URL的URL Rewrite设置,我的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
清洁的网址。非常简单,效果很好。
与CMS中常见的一样,为防止后端损坏,每个子目录都需要一个目录<remove name="Clean URLs" />
或<clear />
在其web.config中,因此该规则不会被继承。
是否可以通过某种方式将规则的范围限制为仅当前目录,来在父规则中指定它根本不应该由其子级继承?像是<rule name="Clean URLs" stopProcessing="true" inherit="no">
史诗般的东西。