需要正则表达式帮助URL重写查询字符串到友好的URL

时间:2012-01-17 06:46:47

标签: asp.net regex iis-7 url-rewriting

我更新了我的网站CMS,并且网址格式已更改。之前我的网址 /blog.aspx?Year=XXXX&Month=YY 我现在有 / blog / XXXX / YY

有人可以帮我创建一个正则表达式吗?

另外两个注意事项:

  • 它还必须仅支持年份( /blog.aspx?Year=XXX
  • 旧的月份网址仅使用1位数字( /blog.aspx?Year=2009&Month=2 而不是月= 02

以下是我提出的建议:

/blog.aspx[?]Year=([0-9]{4})([&]?)(Month=)?([0-9]*)

我似乎无法让它工作,因为当我访问上述某个网址时,我仍然在页面上获得了404.

1 个答案:

答案 0 :(得分:0)

这可行吗?

/blog.aspx\?Year=([0-9]{4})(?>\&?Month=?([0-9]{1,2})|)

使用这些输入

/blog.aspx?Year=1983&Month=2
/blog.aspx?Year=1983
/blog.aspx?Year=1983&Month=12

(?>blabla|moomoo)语法 如果找不到blabla匹配,则匹配moomoo

虽然我怀疑这里的正则表达式不是根本问题,CMS处理重定向是什么?