2012-02-18 66 views
2

情況:將舊的WordPress網站移動到新域; 301'd $ 1將追蹤斜槓添加到404 url​​以便它可以重定向

移動前不久,標籤已被清理;從2000多個標籤減少到十幾個標籤;雖然標籤在現場合並,顯然,很多404開始,因爲許多這些舊標籤已在網站上使用多年並廣泛索引在互聯網上。

  • 即(/標籤/坦率-西納特拉/或/標籤/託尼貝內特/合併和重定向到/標籤/歌手/)

,因爲它們通過組合而發生我已被重定向404的的404重定向插件http://wordpress.org/extend/plugins/404-redirected/(日誌並允許創建重定向),谷歌網站管理員工具數據(404報告/抓取錯誤...),Broken Link Checker http://wordpress.org/extend/plugins/broken-link-checker/,並添加重定向和mod_rewrites到我的htaccess,因爲每個解決方案似乎最經濟。

我的永久鏈接/ canonical url結構(/%postname%/)使用尾部斜槓,即。/post-or-page-name/or/tag/tag-name/or/category/category-name/

這就是說,這裏是一個問題,我提出了,我一直無法解決自己重定向/ mod_rewrite正則表達式:

WordPress的自動重定向頁面,帖子,標籤,類別缺少尾隨斜線,我創造了相當數量的重定向,但從舊標籤到新標籤,但最近我遇到了一堆對於舊的標記url請求404錯過了最後一個斜槓,其中大部分我已經作爲具有尾部斜槓的URL進行了修復。即

  • /標籤/坦率-屈/ 301 - > /標籤/歌手/ = 200次成功
  • /標籤/坦率-屈= 404未找到

他們正在404' d之前的斜線可以強制到URL的末尾,以便他們可以重定向

是否有解決方案,而不是爲每個舊標籤創建單個301的URL缺少尾部斜槓?

我不得不相信這一定是一個非常普遍的問題,但迄今爲止工作智能解決方案已經避開了我!

感謝那些比我更瞭解並不夠的,如果所有網址以斜線結尾,然後解決這一個方式來分享解決方案:)

回答

0

大方是重定向那些不具備的。這將導致2個301,但這比404更好。

爲此,請將以下內容添加到網站根目錄中的.htaccess文件中。確保這些規則出現在其他現有規則之前。

RewriteEngine on 
RewriteBase/

#if not an existing file 
RewriteCond %{REQUEST_FILENAME} !-f 
#redirect urls without a trailing slash 
RewriteRule ^(.*[^/])$ $1/ [L,R=301] 

如果缺少一個斜線的網址是所有標籤的URL,然後更改的最後一個規則來

RewriteRule ^(tag/.*[^/])$ $1/ [L,R=301] 
+0

你會用什麼規則,將其只適用於WordPress的分類/標籤和「漂亮的URL 「(永久鏈接)但保留任何靜態URL(帶有擴展名,即.htm,.html,.php,.xml)? - 謝謝 – rrhobbs 2012-08-29 15:15:27