删除旧固定链接?
我有一个Wordpress网站。我已经多次改变我的固定链接。我使用的固定链接的所有过去版本仍在工作。如果我将它们输入到网址栏中,我将被带到网页上,而不会更改/重定向到新的/当前的固定链接。删除旧固定链接?
为什么旧的固定链接不能重定向到新链接?
这会导致Google阅读重复内容时出现问题。
Example: .com/lightbulb .com/shop/lightbulb
第二URL是旧的,但仍然有效,当我键入它。
难道不应该重定向到新的?
如何删除Google发现的旧固定链接?
在此先感谢
为什么不老的永久链接重定向到新的?
每次添加新的永久链接结构和刷新重写规则时,WordPress都不会将旧链接重定向到新链接。相反,WordPress会彻底改变旧链接与新链接。
我使用的固定链接的所有过去版本仍在工作。
在WordPress中,URL不会映射到路由。它是looped through rewrite rules to find a match - 一个真正的URL,可以通过parse_request方法翻译成数据库查询。
这意味着如果与旧链接匹配的旧重写规则不会被删除。旧的链接仍然有效。
如何删除Google发现的旧固定链接?
既然他们已被谷歌索引,我认为permanent redirects是最好的解决方案。
我假设你使用的是Apache,如果没有,请让我知道。
在你的情况,只是WordPress的规则之前,添加以下代码在.htaccess
文件:
RewriteEngine On
RewriteRule "^shop/(.+)/?$" "http://example.com/$1" [R=301,L]
旧的permlink在哪里存储?它存储在某个数据库中?为什么不能从数据库中选择并删除它? –
@it_is_a_literature通过'init'挂钩添加的重写规则不会保存在数据库中。或者它也可能被缓存。根据当前问题的信息,很难知道什么是问题。我的答案只是一些指导方针,以帮助您找出问题,但我希望它可以帮助:) – MinhTri
正如你所看到的,WordPress的不当你改变你的永久链接结构处理重定向。有2种方法来处理这个问题,通过:根据您的新新/旧永久链接结构
-
htaccess的重写规则(手动编辑.htaccess文件)。
如果.com/lightbulb
是新的路径和.com/shop/lightbul
老一:
Options -Indexes
Options -Multiviews
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RedirectMatch 301 /shop/lightbulb(.*) /lightbulb$1
# or
# RewriteRule ^shop/lightbulb?(.*) http://www.domain.com/lightbulb$1 [R=301,L]
</IfModule>
但是,如果你想旧永久链接结构.com/shop/
重定向到主域名的.htaccess
规则将是:
Options -Indexes
Options -Multiviews
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RedirectMatch 301 /shop/(.*) /$1
# or
# RewriteRule ^shop/?(.*) http://www.domain.com/$1
</IfModule>
永久重定向用于最佳搜索引擎优化实践,重定向明确旧永久链接到新的,避免重复连续并告诉搜索引擎你的旧固定链接已被移动到新的明确。
-
重定向WordPress的免费的插件(有很多):
- Redirections插件是最流行的,并提供一个易于管理301重定向和404错误跟踪。它还提供了更高级的工具来帮助您跟踪站点上的松散链接,如断开的链接和孤立页面。
- Simple 301 redirects插件非常简单,可以处理301重定向创建,以便您将内容从一个位置永久移动到另一个位置。
- Quick Page/Post Redirect插件通过指定重定向URL和类型(301,302,307,meta),轻松地将页面/帖子或自定义帖子类型重定向到另一个页面/帖子或外部URL。
- Safe Redirect Manager插件还会为增加安全性的附加白名单功能...
- SEO Redirection Plugin插件提供支持生成301,302和307个重定向,同时还支持404,方便一键重定向错误监控...
在数据库转换老路(URL)的(如果它们仍然存在):
您可以使用Search and Replace免费的插件,可以轻松地找到你的数据库和散装一些老的相关网址或路径由新的替换它们。这是一个非常强大的插件,有点小车,但工作很好,当你知道它(但使总是 a 备份之前)。
最近参考:
A Simple Guide to Changing Your Permalinks Without Breaking Your WordPress Website
我觉得老固定链接存储在表postmeta
用的meta_key
_wp_old_slug
如果你想清除所有的老蛞蝓,你可以使用此:
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';
如果他不确定为什么发生这种情况,wp_postmeta中的条目是否重复,我建议不要删除,但要更新通过用新链接取代旧链接。还有,表前缀“wp_”? –
出于好奇,'_wp_old_slug'怎么会导致问题? – MinhTri
如果用户通过旧插件到达帖子,则WP通过读取_wp_old_slug元值重定向到帖子。它的用途与301重定向类似。 –
选项+ FollowSymLinks Rewr iteEngine on RewriteRule(。*)http://www.exapmle.com/lightbulb/$1 [R = 301,L]请检查此并让我知道? –