2016-01-11 24 views
0

我有一個很大的WordPress網站,在過去的6年中一直使用http://[root]/[category]/[postname]的永久鏈接結構,現在我想更改它以刪除類別網址的一部分。將.htaccess更改爲301重定向並從URL中刪除通配符類別

我可以很容易地做到這一點,但很明顯我會遇到一個問題,搜索引擎發送人到不正確的地址,所以我想在我的.htaccess中添加一行到301重定向到沒有類別的新路徑。

然而類別是動態的,如果URL中有下列條款

(圖像,圖像的wp-content,可溼性粉劑管理員,WP-包括)

它不能改變URL

我想列表中的數組,所以我可以添加到它,如果我發現其他名稱不能改變。

因此,作爲一個例子

http://www.lazygamer.net/sony/sonys-trying-trademark-lets-plays/

應該成爲

http://www.lazygamer.net/sonys-trying-trademark-lets-plays/

http://www.lazygamer.net/images/2014/07/Lets-play-a-game_thumb.jpg

不得昌Ë

回答

1

如果這些網址,包括「圖像」,「圖像」,「可溼性粉劑內容」等都是在服務器上的實際文件或目錄,可以排除它們構成了動態內容重寫規則:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^\/]+)/([^\/]+)/?$ /$2/ [r=301,nc,L] 
+0

所以行RewriteRule ^([^ \ /] +)/([^ \ /] +)/?$/$ 2/[r = 301,nc,L]會刪除URL中的類別嗎?你能解釋一下它在做什麼嗎? –

+1

它將匹配任何網址與/ [任何文本沒有正斜槓]/[任何文本沒有正斜槓#2]。這是非常廣泛的,所以如果它與任何其他規則衝突,你可能不得不調整它。然後它將301重定向到/ [沒有正斜槓#2的任何文本]/ 例如, /mycat /一些-新聞文章將重定向到/一些-新聞文章 該行的規則[R = 301,NC,L]是指: 問題301重定向 NC =任何情況下 L =應用的最後一條規則 您顯然需要確保WordPress處理新的URL,並且如果有其他規則,則將此新重寫邏輯放置在您的htaccess的正確位置。 – Denouncer