2
防止URL重写规则被IIS7中的子目录继承
我有一个用于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">史诗般的东西。
11
iis
iis-7
rewrite
url
web.config