2

我有一個Wordpress網站。我已經多次改變我的固定鏈接。我使用的固定鏈接的所有過去版本仍在工作。如果我將它們輸入到網址欄中,我將被帶到網頁上,而不會更改/重定向到新的/當前的固定鏈接。刪除舊固定鏈接?

爲什麼舊的固定鏈接不能重定向到新鏈接?

這會導致Google閱讀重複內容時出現問題。

Example: .com/lightbulb .com/shop/lightbulb 

第二URL是舊的,但仍然有效,當我鍵入它。

難道不應該重定向到新的?
如何刪除Google發現的舊固定鏈接?

在此先感謝

+0

選項+ FollowSymLinks Rewr iteEngine on RewriteRule(。*)http://www.exapmle.com/lightbulb/$1 [R = 301,L]請檢查此並讓我知道? –

回答

1

爲什麼不老的永久鏈接重定向到新的?

每次添加新的永久鏈接結構和刷新重寫規則時,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] 
+0

舊的permlink在哪裏存儲?它存儲在某個數據庫中?爲什麼不能從數據庫中選擇並刪除它? –

+0

@it_is_a_literature通過'init'掛鉤添加的重寫規則不會保存在數據庫中。或者它也可能被緩存。根據當前問題的信息,很難知道什麼是問題。我的答案只是一些指導方針,以幫助您找出問題,但我希望它可以幫助:) – MinhTri

2

正如你所看到的,WordPress的不當你改變你的永久鏈接結構處理重定向。有2種方法來處理這個問題,通過:根據您的新新/舊永久鏈接結構

  1. 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

    2

    我覺得老固定鏈接存儲在表postmeta用的meta_key_wp_old_slug

    如果你想清除所有的老蛞蝓,你可以使用此:

    DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug'; 
    
    +1

    如果他不確定爲什麼發生這種情況,wp_postmeta中的條目是否重複,我建議不要刪除,但要更新通過用新鏈接取代舊鏈接。還有,表前綴「wp_」? –

    +0

    出於好奇,'_wp_old_slug'怎麼會導致問題? – MinhTri

    +1

    如果用戶通過舊插件到達帖子,則WP通過讀取_wp_old_slug元值重定向到帖子。它的用途與301重定向類似。 –