【问题标题】:Need regex help for URL rewriting querystrings to friendly URLs需要正则表达式帮助以将查询字符串重写为友好的 URL
【发布时间】:2012-02-12 00:34:46
【问题描述】:

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

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

两个附加说明:

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

这是我想出的:

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

我似乎无法让它工作,因为当我转到上述 URL 之一时,页面上仍然出现 404。

【问题讨论】:

  • 我有一个单独的重定向,它使用将 /blog.aspx 重定向到 /blog 的映射,并且有效。但是如果我添加查询字符串,我总是得到 404,即使上面的这个重定向高于基本的重定向......

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


【解决方案1】:

这样可行吗?

/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 处理重定向?

【讨论】:

  • 谢谢,我会试试看,但是我如何告诉重定向的 url 将月份转换为 2 位数字?
  • 我需要知道您使用的是什么 CMS,以便我们确定语法。
猜你喜欢
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
相关资源
最近更新 更多