簡體   English   中英

將所有博客文章從 %postname% 永久鏈接結構重定向到 /news/%postname%

[英]Redirect all blog posts from %postname% permalink structure to /news/%postname%

我已將永久鏈接更改為自定義結構/news/%postname%但是我現在正在嘗試設置 301 重定向,因此如果有人輸入 http 的舊http://example.com/this-is-my-post他們將自動重定向到http://example.com/news/this-is-my-post

我已經成功地為我的自定義帖子類型設置了重定向,因為我使用以下方法將所有帖子從自定義帖子類型“事件”移動到“最新”:

RewriteRule ^events/(.*) http://www.example.com/latest/$1 [R=301,L]

但是我不確定我是否可以使用它來重定向主要博客文章而不影響網站頁面。

要省略對eventslatest events的請求,必須定義適當的條件 規則看起來與您已有的規則相似

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/events/
RewriteCond %{REQUEST_URI} !^/latest/
RewriteCond %{REQUEST_URI} !^/news/
RewriteRule ^(.*)$ /news/$1 [R,L]

您也可以將三個排除條件合並為一個

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/(events|latest|news)/
RewriteRule ^(.*)$ /news/$1 [R,L]

當一切正常運行時,您可以將R替換為R=301永久重定向 )。 切勿使用R=301測試。

在“設置”>“永久鏈接”中更改您的永久鏈接結構

from /%post-name%/ 

to /news/%post-name%/

完成新鏈接結構的設置后,請在代碼中嘗試此操作,您可能需要將此代碼復制粘貼到活動主題的函數文件中。

https://github.com/devatsemtitans/wp-plugin-snippets/blob/wp_redirect/old-permalinks-redirect

這段代碼基本上做的是它從查詢 URL 中緩存你的帖子 slug 並檢查你的網站中是否存在帶有該 slug 的帖子然后它調用特定帖子永久鏈接並將你的帖子重定向到其新的 URL 結構和 301 狀態代碼.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM