我有一个博客(wordpress 3.01版),它有以下格式的基于自定义的永久链接:/%category%/%postname%/
。例如,blog.com/category/post-name/
。
我需要将永久链接更改为"日期和名称"/%year%/%monthnum%/%day%/%postname%/
(我的主题要求它正常工作)。
我需要在.htaccess文件中写些什么才能使旧的永久链接301重定向到新的永久链接?
我的网站已有9个月的历史,大约有500篇文章。
示例
/%类别%%postname%/到/%postname%/
RedirectMatch 301 ^/([^/]+)/([^2/]+http://www.mydomain.com/每年2美元
我的情况是得到这个
/%类别%/%postname%/至/%year%/%monthnum%/%day%/%postname%/
RedirectMatch 301???????????
您不能对.htaccess
文件执行此操作,因为可以执行此操作的重写功能(RewriteMap)在.htaccess
上下文中不起作用。然而,由于您有一个封闭的列表,因此也有一个固定的类别列表,因此很容易将它们映射到一个通用的重定向程序脚本:
RewriteEngine On
RewriteBase /
RewriteRule ^(cat1|cat2|cat3|cat4)/.*?/$ redirector.php?cat=$1&post=$2 [L,QSA]
(将cat列表扩展为一个完整的类别列表)。那么redirector.php
是标准重定向器模式。您只需查询Wordpress D/B即可确定发布的帖子的YMD
$server = $_SERVER['HTTP_HOST'];
header( "Location: HTTP://$server/$year/$month/$day/$postName/", true, 302 );
在退出之前。