使用mod_rewrite删除文件名并使用短划线交换正斜杠

时间:2012-10-13 13:17:50

标签: apache mod-rewrite

我正在将我的博客从动态网站转移到静态网站。作为不破坏太多链接的一部分,我正在尝试学习mod_rewrite,但在以下RewriteRule中没有得到任何地方:

我的旧网址

/blog/index.cfm/2012/10/9/My-blog-post

我的新网址

/blog/2012-10-09-My-blog-post.html

到目前为止,我的vhosts.conf文件中有以下内容,但它无法正常工作

RewriteRule ([a-zA-Z0-9.]+)(/blog/index.cfm/)([0-9]+)(/)([0-9]+)(/)([0-9]+)(/)([a-zA-Z0-9-]+) $1/blog/$3-$5-$7.html

任何帮助/指针都会很棒

1 个答案:

答案 0 :(得分:0)

首先,您只需要在规则的RHS中包含(即捕获)您将要使用的内容。但问题似乎是你只是将年,月和日复制到RHS,而不是My-blog-post。试试这个:

RewriteRule ([a-zA-Z0-9.]+)/blog/index.cfm/([0-9]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9-]+) $1/blog/$2-$3-$4-$5.html