我正在嘗試使用 .htaccess 進行重定向,但遇到了無法識別的問題。
我想要做什么:將所有頁面從我的舊域重定向到我的新域。例如:https : //www.olddomain.com/fun-blog-post/會轉發到https://www.newdomain.com/blog/fun-blog-post/
我的代碼:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com/$1 [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com/$1
RewriteRule (.*)$ https://www.newdomain.com/blog/$1 [L,R=301]
意外行為:當我輸入 olddomain.com 時,它會直接將我帶到 newdomain.com。但是,如果我輸入 olddomain.com/new-blog-post,它根本不會重定向。它會出現 404 錯誤并只顯示 olddomain.com/new-blog-post。
我已經檢查了以下兩個執行緒。
.htaccess 將所有頁面重定向到新域
從舊域重定向到新域不起作用
但是,我無法弄清楚這一點。我嘗試了一些不同的調整,其中大部分我都不記得了,但這似乎是我能想出的最佳解決方案。有人可以幫我看看我做錯了什么嗎?
uj5u.com熱心網友回復:
RewriteCond %{HTTP_HOST} ^olddomain.com/$1 [OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com/$1 RewriteRule (.*)$ https://www.newdomain.com/blog/$1 [L,R=301]
由于寫的,這不會錯誤的,因為重定向任何東西/$1在結束CondPattern的RewriteCond指令。
應該這樣寫(兩個RewriteCond指令可以合二為一):
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com [NC]
RewriteRule (.*) https://www.newdomain.com/blog/$1 [R=301,L]
這需要.htaccess在任何現有指令之前靠近檔案頂部。
注意:首先使用 302(臨時)重定向進行測驗以避免潛在的快取問題。
您需要在測驗前清除瀏覽器快取。
當我輸入 olddomain.com 時,它會將我直接帶到 newdomain.com
這可能是由于快取重定向或“其他原因”。您發布的規則甚至不會觸發此重定向。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/316591.html
