从PHP或等效程序调用mod_rewrite


Calling mod_rewrite from PHP, or the equivalent

我正在创建一个新的wordpress网站。我已经从我的旧网站导入了1500多篇帖子。问题是wordpress在URL中有"an-The-a-if-is"之类的词,我的旧网站在那里删除了这些词。

这是SEO和断开链接的一个主要问题,因为新链接看起来像"帽子里的猫",而我的旧链接只是"猫帽"。

我只想更改我上传的过去1500篇帖子,从URL中删除指定的单词(我想通过重写),我有要删除的单词列表。我希望创建的所有新帖子都包含这些单词,所以我不只是想使用.htaccess.

有没有办法通过PHP说"如果帖子比XYZ日期早,去掉这些单词,从新重写的URL中提供,否则,正常提供"

您可以在数据库上运行以下命令:

UPDATE `wdp_posts`
SET `post_name`= REPLACE(`post_name`,"-and-","-"),
WHERE `post_date` < "20120101 00:00:00";

(在尝试之前备份数据库!)

这样做的目的是重命名2011年1月1日之前的任何帖子,删除名称中出现的"-和"(即URL)。

您需要根据需要编辑日期。

您需要多次运行此操作。一次用于"-and-",一次用于"-if-",一次表示"-in-"等。正如评论中所指出的,它不会替换url开头或结尾的单词。

可以在一个查询中执行此操作,但阅读起来相当困难,因此我建议每次只执行一个关键字。

Wordpress本身有一些选项,要改变URL的形成方式,我认为它在通用选项下,或者可能是"写入"。在任何一种情况下,您都可以自定义URL使用的内容,也可以使用预定义的内容。Wordpress已经利用htaccessmod_rewrite来满足其将所有内容传递到index.php的需求。改变这种行为并覆盖Wordpress的需求可能会导致WP整体中断。

最重要的是,有没有你想做的事情的方法。它们可能属于Wordpress黑客,或者它们可能是WP中的集成选项(自从我使用WP以来已经有一段时间了,所以我记不清了。但我知道你通常可以通过WP直接寻找什么…

更进一步,如果你从一个旧的WP网站导出到一个新的WP网站,有一些方法可以导出从帖子到设置的所有内容。。可能也想考虑这个选项。