将.htm重定向到.html-IIS

将.htm重定向到.html-IIS,iis,url-rewriting,url-redirection,Iis,Url Rewriting,Url Redirection,我们已经重建了我们的网站,我们的扩展将是.html。目前,它们是.htm。当用户从书签页面(例如.htm)访问我们的站点时,我希望它重定向到.html版本 我已经查看了stackoverflow,看看是否已经有了这方面的问答。大多数都与Apache-.htaccess相关。我正在使用IIS。关于stackoverflow,我能找到的最接近的答案是: 我试着按照那篇文章中的建议去做,但没用。该网页告诉我此网页有一个重定向循环。和错误代码:ERR\u TOO\u MANY\u重定向 我在IIS的UR

我们已经重建了我们的网站,我们的扩展将是
.html
。目前,它们是
.htm
。当用户从书签页面(例如
.htm
)访问我们的站点时,我希望它重定向到
.html
版本

我已经查看了stackoverflow,看看是否已经有了这方面的问答。大多数都与Apache-.htaccess相关。我正在使用IIS。关于stackoverflow,我能找到的最接近的答案是:

我试着按照那篇文章中的建议去做,但没用。该网页告诉我
此网页有一个重定向循环。
错误代码:ERR\u TOO\u MANY\u重定向

我在IIS的URL重写模块中。我为入站规则创建了一个新的“空白规则”。下面是我按照stackoverflow帖子的建议使用的设置:(顺便说一句,我本来会在那个帖子中发布这个,但它已经有3年多的历史了,所以我不确定是否有建议)

请求的URL:与模式匹配

使用:正则表达式

模式:
(.*).htm(.*)

已选中忽略案例

条件:本地分组:全部匹配

我加了一个条件

条件方法:
{REQUEST\u Method}

检查输入字符串:是否与模式匹配

模式:
^GET$

已选中忽略案例

操作类型:重定向

重定向URL:
{R:1}.html{R:2}

已选中附加查询字符串

重定向类型:永久(301)


我做301是因为我想让搜索引擎知道我们的URL扩展已经改变了。我们的URL完全相同。唯一的区别是它们将是
.html
而不是
.htm
。所以
something/something.htm
something/something.html

规则应该简单到:

<rule name="htm to html" stopProcessing="true">
    <match url="(.+).htm$" />
    <action type="Redirect" url="{R:1}.html" />
</rule>

或在配置屏幕中:


此规则将任何以
.htm
结尾且包含至少比
.htm
多一个字符的url重定向到同一url,但将
.htm
替换为
.html

非常感谢!那很好用。我不会再有循环错误了。非常非常感谢!