因為靈活的 Rewrite 模塊,導致在使用 WordPress 建立網站很容易遇到鏈接失效的情況,這種鏈接對於網站的用户體驗和 SEO 都是非常不利的。

假如你修改了一個分類的別名,那麼這個分類之前的鏈接會失效;甚至你修改了固定鏈接,這樣所有文章的鏈接都會失效。如果這些鏈接已經存在了一段時間,被搜索引擎收錄或者被用户添加進了收藏夾,當它們再次訪問的時候就會找不到這篇文章,出現 404 頁面,非常尷尬。

解決這個問題最好的辦法就是利用 301 跳轉 (永久重定向) 。當有人訪問這個鏈接的時候自動跳轉到新的鏈接,無論對於用户還是搜索引擎來説都不會產生太大的影響。

得力於強大的插件資源,在 WordPress 中可以很輕鬆的做到這一點,不用懂得任何編程或服務器知識。

Redirection

插件 Redirection 就是用來進行 301 重定向的。在安裝並啓用它之後,可以通過點擊後台的 「工具」→「轉向 (Redirection)」 來進入它的控制面板:

控制面板首頁:

如何設置 301 重定向

在插件的控制面板,找到下邊的 「添加新的轉向記錄」 版塊,可以設置將本網站的任意鏈接重定向到任意網站的任意鏈接:

這裏有一些比較複雜的選項,不過別擔心。如果你只想設置一個簡單的 301 跳轉,不需要選擇什麼,只需要設置 「原始 URL」 和 「目標 URL」,然後點擊 「添加轉向記錄」 即可。

添加完之後別忘了去測試一下,確保設置的成功有效。

更改固定鏈接自動跳轉失效的文章鏈接

(本節可能要掌握一定的正則表達式知識) 。

如果你更改了固定鏈接,之前的文章鏈接會全部失效,一個一個的添加跳轉是非常不明智的。

因為修改固定鏈接導致的文章鏈接失效,通常原鏈接和新鏈接之間會有一些規律,利用 Redirection 插件的正則表達式匹配鏈接功能,把這些規律通過正則表達式書寫出來,就能讓插件自動將失效的文章鏈接跳轉到新的文章鏈接。

比如我之前就將本站的固定鏈接從 「/%postname%.html」 更換成了 「/%postname%/」,然後在插件裏添加這樣的跳轉記錄:

現在訪問本站類似 「www.weixiaoduo.com/post-name-xxx.html」 的鏈接會全部跳轉到 「www.weixiaoduo.com/post-name-xxx/」 。

分組

如果你添加了很多跳轉記錄,那麼強烈建議利用插件的分組功能來把跳轉記錄分組,方便日後的維護和管理。

在插件控制面板的 「分組」 選項卡下,就可以建立和管理分組:

可以在 「添加分組」 版塊下面添加分組。先輸入分組的名稱,然後點擊 「添加」 按鈕就行了。

接下來編輯跳轉記錄的時候就可以在 「組」 選項選擇之前創建的分組了:

404 錯誤日誌

「404s」 選項卡記錄了網站出現的所有 404 錯誤。鼠標懸浮到任意一條 404 記錄上,日期的下方會出現一個叫做 「Add redirect」 的按鈕,點擊就可以直接創建 301 跳轉。

點擊 「Add redirect」 之後

如上圖,錯誤的鏈接自動出現在輸入框中,輸入一個跳轉目標,就可以給這個 404 頁面設置跳轉了,非常方便。

同時,這個日誌還可以幫助你發現一些網站攻擊者的 IP 地址,雖然很少有攻擊者用真實 IP,但是有時候封禁這些 IP 也能阻止一些攻擊和掃描。

隨機文章

分享一個插件使用小技巧,Redirection 插件支持把一個鏈接跳轉到一篇隨機文章。添加一條類似這樣的跳轉記錄:

訪問原始地址,是不是發現跳轉到了一篇文章呢?多試幾次就會發現,這個鏈接會把訪客帶到一篇隨機文章上,把這個鏈接添加到網站上,可以增加趣味性哦!

使用 Apache 和 Nginx 進行跳轉

「模塊」 選項卡可以根據我們的跳轉記錄生成用於 Apache 和 Nginx 的服務器重寫規則 (前提是要把記錄對應的分組的模塊設置好) 。用 Apache 和 Nginx 進行跳轉,速度和資源消耗都會優秀不少,而且還支持在對 404 進行頁面緩存的情況下跳轉。

配置起來不是很複雜,感興趣的同學可以嘗試一下,這裏我不再闡述。