2017-02-13 149 views
2

我有以下URL結構的WordPress博客:WordPress的博客文章重定向(1000個)

www.mysite.com/2016/09/the-name-of-the-post/

但是我注意到,對於搜索引擎優化的原因,倒不如有這樣的結構:

www.mysite.com/blog/the-name-of-the-post/

我有1000左右的職位與「舊」的網址結構。我可以在wordpress中更改網址結構。不過,如果有人試圖使用舊網址訪問帖子,我需要301重定向。

E.g.

人/谷歌機器人嘗試通過/ 2016/09 /該名

訪問頁面 - > 301重定向到/博客/該名

什麼是這樣做的最佳做法是什麼?我是否將1000行添加到.htaccess文件並執行重定向?這是否會對服務器響應時間產生負面影響,因爲apache必須首先檢查一長串重定向?

我可以調整wordpress文件結構中的一個文件,該文件檢查是否包含請求的頁面。一個數組,它會將其重定向到新的url?

非常感謝您的建議

+0

相關:[參考:mod_rewrite,URL重寫和「漂亮鏈接」解釋](http://stackoverflow.com/questions/20563772/reference-mod-rewrite-url-rewriting-and-pretty-links-explained) 。這甚至可能是重複的 - 雖然我不確定wordpress是否有一些內置的處理方式。 – HPierce

回答

2

你可以簡單地在WordPress的URL結構更改爲您希望有一個。您不必修改.htaccess或其他任何東西。

WordPress會理解哪個帖子被URL引用並自動重定向到新的規範URL。

只需轉到固定鏈接管理頁面並選擇「帖子名稱」選項as described in the Codex。但是,如果您也引入了像/blog/這樣的前綴,則必須通過.htaccess重定向到新的網址庫,例如,

RedirectMatch 301 ^/[0-9]{4}/[0-9]{2)/(.+)$ http://example.com/blog/$1 // taken from stackoverflow.com/a/42211746/ 
+0

如果我這樣做,當訪問使用舊URL的博客文章時,出現404錯誤 – Tom

+0

您是否曾根據https://codex.wordpress.org/Using_Permalinks#Creating_and_editing_.28設置常見的WordPress .htaccess代碼段。 htaccess.29?如果不是,那麼當然你必須添加一次。完成這些之後,WP通常會正確地重定向文章。 – lxg

+0

@Tom:要想到這個想法,試試現有的WP博客。例如,URL https://wordpress.org/news/wordpress-4-7-2-security-release/是指向wp.org上的帖子,但是具有「錯誤的」永久鏈接結構。注意你是如何被重定向到https://wordpress.org/news/2017/01/wordpress-4-7-2-security-release/。這由WordPress內部完成。 – lxg

1

您可以使用下面的重定向

RedirectMatch 301 ^/[0-9]{4}/[0-9]{2)/(.+)$ http://example.com/blog/$1 

這將所有URL重定向從這種形式/1234/12/foobar的這個/博客/ foobar的

1

更改永久鏈接到新的結構,並將其添加到您的.htaccess中

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)/$ http://example.com/blog/$3