需要有关Apache htaccess重定向规则的帮助

时间:2009-04-27 09:01:10

标签: regex apache .htaccess mod-rewrite

我需要从路径重定向

 /articles/20090425-swine-flu-kills.html

 /2009/04/swine-flu-kills.html

在原始路径中,文章后面的数字是yyyymmdd格式的日期。这将在新路径中转换为“/ yyyy / mm /”。

我想需要一些正则表达式,但我不确定如何。很感激帮助。谢谢

2 个答案:

答案 0 :(得分:1)

试试这个:

RewriteRule ^articles/(\d{4})(\d\d)\d\d-(.*)$ /$1/$2/$3

匹配:

  • ^articles/:以“articles /”
  • 开头的字符串
  • (\d{4}):4位数到1美元(年份)
  • (\d\d):2位数到2美元(月份)
  • \d\d-:2位数字&破折号(编辑:错过领先的破折号)
  • (.*)$:网址的其余部分为$ 3

答案 1 :(得分:1)

RewriteRule ^articles/(\d{4})(\d\d)\d\d\-(.+)$ /$1/$2/$3

将是一个更好的解决方案。