我正在将博客从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。
答案 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})$"
基于您总是拥有的假设: