将.htm重定向到.html - IIS

时间:2013-09-04 20:56:33

标签: iis url-rewriting url-redirection

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

我已经查看了stackoverflow,看看是否已经有了Q& A.大多数是Apache - .htaccess相关。我正在使用IIS。我在stackoverflow上找到的最接近的答案是这一个:IIS url rewrite rewriting all .asp to .html

我尝试按照该帖子中的建议,但它不起作用。该网页告诉我This webpage has a redirect loop.Error code: ERR_TOO_MANY_REDIRECTS

我在IIS中的URL Rewrite模块中。我为入站规则创建了一个新的“空白规则”。以下是我正在使用的设置,如stackoverflow帖子所建议的那样:(顺便说一下,我会在这个帖子中发布这个,但它已经超过3年了,所以我不确定是否有人建议)

请求的网址:匹配模式

使用:正则表达式

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

选中忽略案例。

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

我添加了条件......

条件方法:{REQUEST_METHOD}

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

模式:^GET$

检查忽略案例

操作类型:重定向

重定向网址:{R:1}.html{R:2}

选中附加查询字符串

重定向类型:永久(301)

我正在做301,因为我希望搜索引擎知道我们的网址扩展已更改。我们的网址完全一样。唯一的区别是它们将是.html而不是.htm。所以... something/something.htmsomething/something.html

1 个答案:

答案 0 :(得分:2)

规则应该如下:

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

或者在配置屏幕中:

rule

此规则会将任何以.htm结尾且至少包含一个字符{ur> .htm的网址重定向到同一网址,但将.htm替换为.html