我有一个Wordpress网站。我已多次更改我的永久链接。我使用的永久链接的所有过去版本仍然有效。如果我在URL栏中输入它们,我将转到页面,不会更改URL /重定向到新的/当前永久链接。
为什么旧的永久链接不会重定向到新的永久链接?
这会导致Google阅读重复内容时出现问题。
<VideoView
android:id="@+id/placesVideo"
local:MvxBind="VideoUri myPlace.videos.FirstOrDefault().url" />
// Models
public class MyPlace
{
public List<Video> videos { get; set; }
}
public class Video
{
public string url { get; set; }
}
第二个网址是旧的,但在我输入时仍然可以使用。
它不应该重定向到新的吗?
如何删除Google发现的旧永久链接?
提前致谢
答案 0 :(得分:3)
正如您所看到的,当您更改永久链接结构时,Wordpress不会处理重定向。有两种方法可以解决这个问题:
.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>
永久重定向用于最佳SEO实践,将最终旧永久链接重定向到新的,避免重复内容,并告诉搜索引擎您的旧永久链接已被移动明确新的。
在数据库 中转换旧路径(网址)(如果它们仍然存在):
您可以使用Search and Replace免费插件,轻松找到数据库中的旧相关网址或路径,并用新的批量替换它们。这是一个非常强大的插件,有点儿错误,但是当你知道(但总是 备份之前)时工作正常。
最近的参考文献:
A Simple Guide to Changing Your Permalinks Without Breaking Your WordPress Website
答案 1 :(得分:2)
我认为旧的固定链接存储在表postmeta
中meta_key
_wp_old_slug
如果你想清除所有旧的slu that,你可以使用它:
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';
答案 2 :(得分:1)
为什么旧的永久链接不会重定向到新的?
每次添加新的永久链接结构和刷新重写规则时,WordPress都不会将旧链接重定向到新链接。相反,WordPress将完全改变旧链接。
我使用的永久链接的所有过去版本仍在使用。
在WordPress中,URL不会映射到路由。它的looped through rewrite rules to find a match - 一个真实的网址,可以通过parse_request方法转换为数据库查询。
这意味着如果不删除与旧链接匹配的旧重写规则。旧的链接仍然有用。
如何删除Google发现的旧永久链接?
由于它们已被Google编入索引,我认为permanent redirects是最佳解决方案。
我假设您正在使用Apache,如果没有,请告诉我。
在您的情况下,只需在.htaccess
文件中的WordPress规则之前添加以下代码:
RewriteEngine On
RewriteRule "^shop/(.+)/?$" "http://example.com/$1" [R=301,L]