如何从帖子中删除帖子ID,然后重定向到新的URL?

时间:2012-07-03 18:42:40

标签: wordpress .htaccess redirect wordpress-plugin

我刚刚更改了基于wordrpress的博客的永久链接结构。以前它有像这样的永久链接结构

http://www.mysite.com/sample-post-example/2345/

网址末尾的数字是由wordpress软件自动生成的。实际上这些数字都是post_id。现在我有了这个url结构。

http://www.mysite.com/sample-post-example/

现在问题是两个网址结构下都有个别帖子。

在删除旧网址末尾的Post_ID后,是否仍然将旧网址重定向(301)旧网址?

3 个答案:

答案 0 :(得分:1)

检查一下:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule (.+)/\d{4,5}/?$ $1/ [R=301,L]

答案 1 :(得分:0)

两个网址都不应提供个别帖子。您确定您发布的第二个链接不是存档页面吗? 这可能是您要查找的自定义永久链接结构:/%category%/%postname%

答案 2 :(得分:0)

我在首页上运行了一个包含最后13个帖子的主页的wordpress博客。然后主页分页到以前的帖子。因此,当我尝试转到第2页(类似http://www.mysite.com/page/2/)时,由于上面的行,我收到404错误。现在我使用两行,每一件事都在我的博客上正常工作。请检查出来并告诉我这些代码有什么问题。

RedirectMatch 301 ^/([^/]+)/([0-9]{4})/$ http://www.mysite.com/$1
RedirectMatch 301 ^/([^/]+)/([0-9]{5})/$ http://www.mysite.com/$1

我有最多约1000篇博文,共74页。但是第一个帖子的ID包含4位数字,我在URL末尾用ID创建的最后一个帖子包含5位数字。所以第一行检查帖子是否在URL的末尾包含4位数字,如果是,它将删除它们并显示剩余部分,如上所述/ sample-post-example /。类似地,第二行检测到URL末尾的5位数字。包含少于或超过4-5位的其他URL将不受影响。通过这种方式,首页的分页不受影响。

我们可以结合以上两行吗?

抱歉,eng不是我的母语,所以我想我不能以正确的方式告诉你。