1

找不到答案,并认为这可能是一个快速的答案。

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

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

旧的 CMS 将特殊字符和空格变成连字符。WordPress 将被配置为忽略特殊字符,而只是将空格变成连字符。此外,旧的 CMS 没有在 URL 中包含日期,我不确定添加日期的最佳途径。

谢谢!

4

2 回答 2

0

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

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

同样,假设您可以访问 Java:


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

于 2012-09-12T17:34:09.423 回答
0

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

Redirect 301 /story-name--is--this-/ /news/2012/09/12/story-name-is-this/
于 2012-09-12T17:26:12.110 回答