301使用正则表达式重定向

时间:2012-09-12 17:14:46

标签: wordpress redirect migration permalinks

无法找到答案并认为这可能是一个快速答案。

我的公司是一家本地新闻网站,正致力于从专有CMS迁移到WordPress。部分挑战是我们正在重组URL。我将使用301重定向,但我的问题如下:

示例页面名称:故事名称:是“这个” 示例旧CMS页面URL:/ story-name - is - this- / 新的CMS页面URL:/ news / 2012/09/12 / story-name-is-this /

旧的CMS将特殊字符和空格转换为连字符。 WordPress将被配置为忽略特殊字符,只需将空格转换为连字符。此外,旧的CMS没有在URL中包含日期,我不确定添加日期的最佳路线。

谢谢!

2 个答案:

答案 0 :(得分:0)

您要么必须编写一个脚本来获取所有旧链接,在数据库中进行查找以将其转换为新链接,并将浏览器重定向到新链接。或者你必须枚举旧链接的整个映射 - >新链接并为每个链接创建301重定向(在您的vhost /服务器配置或htaccess文件中):

Redirect 301 /story-name--is--this-/ /news/2012/09/12/story-name-is-this/

答案 1 :(得分:0)

目前尚不清楚你的真正问题是什么?我也不确定正则表达式与问题有什么关系。

没有关于旧CMS的功能的信息,假设您可以在通过浏览器访问旧文章时拦截它们,但在呈现它们之前,您可以形成并将重定向发送回浏览器使用您的专有CMS中可用的编程机制动态生成URL。

再次,假设您可以访问Java:


A.生成重定向网址时,您可以访问文章的日期并形成 从日期开始到2012/09/12,您可以使用SimpleDateFormatter将日期格式化为字符串表示形式,如YYYY / MM / DD。
B.您可以对标题使用类似的方法,并用空格替换标题字符串中的特殊字符列表。例如,Apache StringUtils库可以让您指定要查找的一组字符,如果找到任何字符,它们将被替换为目标字符。
C.您连接A和B的输出以创建目标重定向URL并将其发送回浏览器而不是文章本身。