使用BlogEngine进行URL重定向

时间:2012-05-04 14:06:18

标签: iis url-rewriting web-config blogengine.net

我正在将博客从dasBlog转移到BlogEngine。在dasBlog中,我的网址看起来像这样。

  

http://pfsolutions-mi.com/blog/2008/03/08/Beyond-Compare.aspx

在BlogEngine中,我的网址看起来像这样。

  

http://pfsolutions-mi.com/blog/post/2008/03/08/Beyond-Compare.aspx

两个网址之间的唯一区别是BlogEngine中的“post”子文件夹。

由于我目前正在使用IIS URL Rewrite从URL中删除WWW,我认为最简单的解决方案是创建另一个规则来处理添加子文件夹。我试过这样的事情。

  

rule name =“Blog Redirect”enabled =“true”stopProcessing =“true”

     

匹配url =“^ blog /([_ 0-9] +)/([_ 0-9] +)/([_ 0-9] +)/([_ 0-9a-z - ] +)。( [_0-9a-Z - ] +)$“

     

action type =“Redirect”url =“blog / post / {R:1} / {R:2} / {R:3} / {R:4}。{R:5}”redirectType =“Temporary “

但是,当我输入旧的dasBlog网址时,它不会被重定向到新位置。相反,我得到了通用的BlogEngine 404错误页面。

注意:一旦我知道一切正常,我计划将redirectType更改为Permanent。

1 个答案:

答案 0 :(得分:1)

你的匹配正则表达式不应该更像这样吗?

match url="^blog/([0-9]+)/([0-9]+)/([0-9]+)/([\w-]+)\.([a-z]+)$"

无论如何,日期编号中没有下划线,而[_0-9a-z-]+不包含“Beyond-Compare”中的大写字母。

所以我们应该:url =“^ blog / digits / digits / digits / any-word-characters.lowercase-letters $”

我们还可以使用以下内容指定更多内容:

match url="^blog/([0-9]{2,4})/([0-9]{2})/([0-9]{2})/([\w-]+)\.([a-z]{3,4})$"

基于您总是拥有的假设:

  1. 年份为“08”或“2008”
  2. 月份和日期为“01”或“11”
  3. 带有3或4个小写字母的文件结尾(htm,html,php,asp,aspx等)
  4. 编辑:我认为“\ w +”不包含连字符,所以你必须把它变成“[\ w - ] +”