删除旧永久链接?

时间:2015-09-05 03:36:52

标签: wordpress url-rewriting url-redirection http-status-code-301

我有一个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发现的旧永久链接?

提前致谢

3 个答案:

答案 0 :(得分:3)

正如您所看到的,当您更改永久链接结构时,Wordpress不会处理重定向。有两种方法可以解决这个问题:

  1. htaccess重写规则(手动编辑.htaccess文件),具体取决于您新的旧/新永久链接结构。
    如果.com/lightbulb是新路径,.com/shop/lightbul是旧路径:
  2. 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实践,将最终旧永久链接重定向到新的,避免重复内容,并告诉搜索引擎您的旧永久链接已被移动明确新的。

    1. 重定向Wordpress免费插件 (有很多)
      • Redirections插件是最受欢迎的,并提供易于管理的301重定向和404错误跟踪。它还提供了更多高级工具,可帮助您跟踪网站上的松散端点,例如断开的链接和孤立页面。
      • Simple 301 redirects插件非常简单,可以在您将内容从一个位置永久移动到另一个位置时处理301重定向创建。
      • Quick Page/Post Redirect插件可以通过指定重定向网址和类型(301,302,307,meta)轻松地将网页/帖子或自定义帖子类型重定向到其他网页/帖子或外部网址。
      • Safe Redirect Manager插件附带了一个额外的白名单功能,可以增加安全性......
      • SEO Redirection Plugin插件支持生成301,302和307重定向,并通过简单的一键重定向支持404错误监控...
    2. 在数据库 中转换旧路径(网址)(如果它们仍然存在)

        

      您可以使用Search and Replace免费插件,轻松找到数据库中的旧相关网址或路径,并用新的批量替换它们。这是一个非常强大的插件,有点儿错误,但是当你知道(但总是 备份之前)时工作正常。

      最近的参考文献:
      A Simple Guide to Changing Your Permalinks Without Breaking Your WordPress Website

答案 1 :(得分:2)

我认为旧的固定链接存储在表postmetameta_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]