经过自己反复测试,和热心朋友的帮助,终于将emlog在IIS7下实现完美伪静态。
测试环境:Windows2008 R2+ IIS7.5 + IIS URL Rewrite 2.0
IIS URL Rewrite 2.0下载地址:http://www.iis.net/downloads/microsoft/url-rewrite
请将以下规则放到网站根目录web.config中即可,我测试的emlog版本是5.3,之前的版本没试过。
<rewrite>
<rules>
<rule name="Imported Rule 1">
<match url="^(post|record|sort|author|page)-([0-9]+)\.html$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="/index.php?{R:1}={R:2}" />
</rule>
<rule name="Imported Rule 2">
<match url="^tag/(.+)$" ignoreCase="false" />
<action type="Rewrite" url="/index.php?tag={R:1}" />
</rule>
<rule name="Imported Rule 3">
<match url="^page/([0-9]+)$" ignoreCase="false" />
<action type="Rewrite" url="/index.php?page={R:1}" />
</rule>
<rule name="Imported Rule 4">
<match url="^sort/([0-9]+)$" ignoreCase="false" />
<action type="Rewrite" url="/index.php?sort={R:1}" />
</rule>
<rule name="Imported Rule 5">
<match url="^record/(.+)$" ignoreCase="false" />
<action type="Rewrite" url="/index.php?record={R:1}" />
</rule>
<rule name="Imported Rule 6">
<match url="^author/(.+)$" ignoreCase="false" />
<action type="Rewrite" url="/index.php?author={R:1}" />
</rule>
<rule name="Imported Rule 6>
<match url="^sort/([0-9]+)/page/([_0-9a-z-]+)" />
<action type="Rewrite" url="/index.php?sort={R:1}&page={R:2}" />
</rule>
</rules>
</rewrite>
