Apache 使用mod_rewrite删除文件名并将前斜杠替换为破折号 我把博客从一个动态站点移动到一个静态站点。作为不破坏太多链接的一部分,我正在尝试学习mod_rewrite,但无法使用以下重写规则:

Apache 使用mod_rewrite删除文件名并将前斜杠替换为破折号 我把博客从一个动态站点移动到一个静态站点。作为不破坏太多链接的一部分,我正在尝试学习mod_rewrite,但无法使用以下重写规则:,apache,mod-rewrite,Apache,Mod Rewrite,我的旧网址 /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 任何帮助/指针都很好首

我的旧网址

/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

任何帮助/指针都很好

首先,您只需要在规则的RHS中包含(即捕获)您将使用的内容。但问题似乎是,您只是将年、月、日复制到RHS,而不是
我的博客帖子
。试试这个:

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

我已经很快地更新了规则,但它没有起作用。今晚我会花更多的时间在上面,让mod_重写日志记录,看看我是否错过了其他东西。我当前的vhost文件中现在有以下内容(供参考)RewriteEngine on RewriteRule([a-zA-Z0-9.]+)/blog/index.cfm/([0-9]+)/([0-9]+)/([a-zA-Z0-9-]+)$1/blog/$2-$3-$4-$5.html