【发布时间】:2015-06-08 23:04:35
【问题描述】:
如何重写我的 html 网页的 url,以便用户可以在没有 .html 的情况下访问它们。
这意味着在 IIS 服务器上上传的文件名是 example.com 上的 about.html 我希望在 example.com/about 上提供该文件
我想要几个文件都这样,所以我想要一个处理所有文件的代码。
【问题讨论】:
标签: url iis url-rewriting iis-7 server
如何重写我的 html 网页的 url,以便用户可以在没有 .html 的情况下访问它们。
这意味着在 IIS 服务器上上传的文件名是 example.com 上的 about.html 我希望在 example.com/about 上提供该文件
我想要几个文件都这样,所以我想要一个处理所有文件的代码。
【问题讨论】:
标签: url iis url-rewriting iis-7 server
如果您要使用静态 html 文件执行此操作,那么最简单的方法是通过静态重写。
请看下面的文章http://www.iis.net/learn/extensions/url-rewrite-module/using-rewrite-maps-in-url-rewrite-module
【讨论】:
<rewrite> <rules> <clear /> <rule name="Rewrite HTML Pages" stopProcessing="true"> <match url="^([^/]+)$" /> <action type="Rewrite" url="/{R:0}.html" appendQueryString="true" logRewrittenUrl="true" /> </rule> </rules> </rewrite> 的 system.WebServer 部分
此 URL 重写规则会将 .html 添加到任何没有 '.' 的请求 url在最后一个 '/' 和 url 的结尾之间。因此,这将允许您使用带有和不带有 .html 扩展名的 url。
<rule name="Append .html">
<match url="^((.*\/)?[^/.]+)$" />
<action type="Rewrite" url="{R:1}.html" />
</rule>
附:请注意名称减去扩展名相同的文件夹和文件。例如,如果您的网站具有以下文件结构:
/
content.html
content/
index.html
那么当你请求http://localhost/content 时,你会得到 content.html,而不是 content/index.html。
【讨论】: