.htaccess 多個 301 重定向

.htaccess 多個 301 重定向

我正在將 Apache 伺服器上託管的部落格移至新網域。

部落格文章的永久連結保持不變,但有幾個頁面的 url slug 將在新網域上更改。

我的問題是以下是否可能以及我將如何透過重寫規則來做到這一點。

部落格文章的 URL slugs/永久連結和舊網域上的大多數頁面將在新網域上保持不變。所以我想我可以添加一個重定向規則,從 重定向到 ,https://huiskopenomteverhuren.nl/因為https://vastgoedmentor.com它將在新網域上找到相同的 /slug

舊網站的某些頁面已移至新的永久連結。因此,我需要額外的規則來重定向,例如重定向https://huiskopenomteverhuren.nl/kennisbank/https://vastgoedmentor.com/resources其他一些頁面並執行此操作。

答案1

您可以RewriteRule在伺服器設定中使用正規表示式建立多個指令。您應該從更改了永久連結的特定重定向開始。所有其他頁面的一般重定向可以添加在最後。

RewriteEngine On

RewriteRule ^/kennisbank(/.*)?$ https://vastgoedmentor.com/resources$1 [END,R=301]
RewriteRule ^/old2(/.*)?$       https://vastgoedmentor.com/new2$1      [END,R=301]
RewriteRule ^/old3(/.*)?$       https://vastgoedmentor.com/new3$1      [END,R=301]

RewriteRule ^/(.*)$           https://vastgoedmentor.com/$1           [END,R=301]

的表示法(/.*)?將執行帶或不帶尾部斜杠的重定向,並將任何其他路徑詳細資訊新增至新 URL。因此,它將huiskopenomteverhuren.nl/kennisbank/something-or-nothing轉向vastgoedmentor.com/resources/something-or-nothing

有關的更多詳細信息,RewriteRule請訪問 https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

由於所有規則都指向不同的域,因此不存在陷入循環的風險。但將END標誌添加到所有規則中以避免評估其餘規則仍然是一個好主意。除了該L標誌之外,該END標誌還避免評估 .htaccess 檔案中的任何其他規則。

有關標誌的更多詳細信息,請訪問 https://httpd.apache.org/docs/current/rewrite/flags.html

相關內容