使用htaccess更改URL结构后重定向所有帖子

时间:2017-02-25 作者:Michael Rogers

我在找.htaccess 将旧结构重定向到新结构的正则表达式,我不想使用插件的原因是,当WordPress更新或作者放弃它们时,它们往往会产生意外的结果,我需要一些能够长期可靠地301重定向的东西。

旧permalink:

https://domain.com/%category%/%postname%/
新Permalink:

https://domain.com/%post_id%/
Note: 我不确定规则是否应该考虑这一点,但是。我还使用自定义的帖子类型,将它们的slug添加到url中。所以“类别”显示为正常的“post”,但在CPT上它只是:

https://domain.com/%example-cpt-slug%/%postname%/
我怀疑一个好的规则可以适用于这两种情况,因为/%category%/和/%example cpt slug%/介于两者之间。

我不太确定的是,如何将POST ID(%POST\\u ID%/)指定为目标。

1 个回复
最合适的回答,由SO网友:filipecsweb 整理而成

在“设置”>“永久链接”中,自定义结构设置为/%category%/%postname%/ 正当

现在您要设置(或已经设置)为/%post_id%/ 正当

据我所知(我也测试过),WordPress将301将您的所有帖子(从帖子类型“post”)重定向到新的自定义结构。你什么都不用做。

因此,如果将自定义结构设置为/%post_id%/ 这意味着如果有人访问URLhttps://domain.com/my-category/my-post-slug 他们将被重定向到https://domain.com/POST_ID.

更改自定义结构后,即使您也更改了post-slug,WordPress仍会正确重定向它。

我不知道这应该从哪个WP版本开始工作,但为了记录在案,我已经在4.7中进行了测试。

如果对你不起作用,请告诉我,我会给你另一个解决方案。

顺便说一下,我假设你的WordPress网站URL没有像你刚才使用的域那样发生变化。com。

相关推荐

Plain permalinks not working!

对于我的wordpress网站,普通永久链接不起作用。帖子url正在更改,但当我们单击帖子时,它不会重定向到帖子页面。它将出现在主页上。例如:http://example.com/?p=14523 如果我将永久链接更改为其他自定义格式,它将正常工作并显示帖子页面。例如:http://example.com/2018/09/01/postname/ 我尝试创建一个新的.htaccess 将永久链接更改为普通后的文件。仍然不工作。