从PHP调用mod_rewrite或等效的

时间:2012-08-29 18:05:29

标签: php wordpress apache .htaccess mod-rewrite

我正在创建一个新的wordpress网站。我从旧网站上导入了超过1500条帖子。问题是wordpress在URL中有“an-the-a-if-is”这样的词,我的旧网站删除了这些词。

这是搜索引擎优化和破坏链接的一个主要问题,因为新的链接看起来像“猫在帽子里”而我的旧链接只是“猫帽子”。

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

有没有办法通过PHP说“如果帖子早于XYZ日期,请删除这些单词,并从新重写的URL提供,否则,正常提供”

2 个答案:

答案 0 :(得分:1)

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

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

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

这样做是重命名2011年1月1日之前的任何帖子,删除名称中出现的“-and”(成为URL)。

您需要编辑日期以满足您的需求。

你需要多次运行。一次用于“-and-”,一次用于“-if-”,一次用于“-in-”等。如评论中所指出的,它不会替换网址开头或结尾处的单词。

可以在一个查询中执行此操作,但它很难阅读,所以我建议一次只使用一个关键字。

答案 1 :(得分:0)

Wordpress本身的Theres选项,改变URL的形成方法,我认为它在一般选项下或者可能是“写作”。在任何一种情况下,您都可以自定义用于URL的内容或使用预定义的内容。 Wordpress已经在使用htaccessmod_rewrite来将所有内容传递给index.php。要改变这种行为并覆盖Wordpress所需的内容,可能会导致WP作为一个整体破坏。

最重要的是,有没有你想要做的方法..它们可能属于Wordpress Hacks,或者它们现在可能是WP中的集成选项(自从我使用WP以来我已经有一段时间了,所以我不喜欢记得很清楚。但我知道你通常可以通过WP直接找到你想要的东西......

为此,如果您从旧的WP站点导出到新的WP站点,那么将所有内容从帖子导出到设置的方法也可能需要考虑该选项。