我正在將 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