IIS URL重写为html而不是同名子目录

时间:2019-07-17 05:24:52

标签: iis url-rewriting jekyll

我在IIS上由jekyll生成的静态网站正在定向到子目录,而不是实际的同名html文件(均在根目录中)。我如何更改web.config,以便它将重定向/重写为html?

我正在IIS上部署由jekyll生成的静态网站。我已经搜索了Interweb,现在URL不需要默认的.html扩展名。我在Web.Config中使用了以下代码来删除html扩展名:

<rule name="Redirect to clean URL" enabled="true" stopProcessing="true">
    <match url="^([a-z0-9/]+).html$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Redirect" url="{R:1}" />
</rule>

<rule name="RewriteHTML" enabled="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="{R:1}.html" />
</rule>

这是我的根源示例:

-----
|---    
|---   
|          |---1.html
|---/sub---|---2.html
|          |---3.html
|
|---index.html
|
|---sub.html
|
|
|---noExtension.html
|
|
|
-----

我现在所取得的成就是:

http://www.example.com/ =====> index.html

http://www.example.com/noextension =====> noextension.html

http://www.example.com/sub =====> / sub ** sub.html ** instad **

http://www.example.com/sub/1 =====> /sub/1.html

我希望将http://www.example.com/sub的URL定向到sub.html而不是目录。

** PS我不认为我可以更改文件结构,因为它是由jekyll生成的。并且IIS是必需的。没有Apache / nginx **

如果有人可以帮助我,这将是适当的!

干杯!

0 个答案:

没有答案