.htaccess 多個 301 重定向
我正在將託管在 Apache 伺服器上的部落格移動到新域。
部落格文章的永久連結保持不變,但有幾個頁面的 url slug 會在新域上發生變化。
我的問題是以下是否可能以及我將如何使用重寫規則來做到這一點。
部落格文章的 URL slugs/永久連結和舊域上的大多數頁面在新域上將保持不變。所以我想我可以添加一個重定向規則,從
https://huiskopenomteverhuren.nl/
to重定向,https://vastgoedmentor.com
因為它會在新域上找到相同的 /slug舊網站的某些頁面已移至新的永久連結。所以我需要額外的規則來重定向,例如重定向
https://huiskopenomteverhuren.nl/kennisbank/
到https://vastgoedmentor.com/resources
其他一些頁面並執行此操作。
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