mod_rewrite:将“/ blog / 2014/10/08 / slug-name /”转换为“slug-name.html”

时间:2014-12-22 17:41:33

标签: regex apache .htaccess mod-rewrite

我正在处理的博客的网址约定是从" / blog / YYYY / MM / DD / post-name /"只是" post-name.html"。

为了保持向后兼容性,我尝试使用mod_rewrite剥离" / blog / YYY / MM / DD /",删除尾随/,并添加" .html& #34;

我对正则表达式或mod_rewrite不太满意。 (即使这个"工作",我仍然怀疑它是否是最佳方式。)

所以我在这里:

RewriteRule ^blog/\d{4}/\d{2}/\d{2}/([\w\-]+)/?$ /$1.html

似乎没有工作,所以我不确定我错过了什么。我有正则表达式错了吗?写错的规则?或完全遗漏别的东西?我使用了一个名为Patterns的工具来处理正则表达式,但仍然不自信我做对了。

示例

/blog/2014/10/08/whatever-was-here/

应重写为

whatever-was-here.html

1 个答案:

答案 0 :(得分:1)

好的,花了太多时间来过度思考这个。规则是正确的,我忘了添加标志...... [R = 301,L]