更改了域名,現在有 2 個如何使用 htaccess 重定向到首選的一個?
我在
/forums
子目錄上有一個 WordPress 站點和一個 PHPBB 論壇。我在 Apache 的網站上添加了一個新域。添加域後,所有內容都將載入到兩個域上。
然後我更改了 WP-config 文件上的地址,WP 現在自動 301 重定向到新域(是的,這是一件事)。
到現在為止還挺好。
/forums/
仍然在新域和舊域上傳入。如何重定向這個子目錄,記住新域和舊域都添加到同一個伺服器安裝中?因此,當您訪問任何域時,都會點擊同一個.htaccess
文件。**所以我只
/forums/
**需要像重定向這樣的東西,而且只有當它被舊域訪問到新域時。那可能嗎?我無法從站點中刪除舊域,否則它將無法解析。我想我可以創建一個僅用於重定向的新站點,但這似乎沒有必要。
編輯:我的嘗試(不工作)
RewriteEngine on RewriteCond %{HTTP_HOST} ^old-domain.com RewriteCond %{REQUEST_URI} ^/forums/(.*)$ RewriteRule ^(.*)$ https://new-domain.com/forums/$1 [L,R=301]
所以,澄清一下,你想重定向
old-domain.com/forums/<anything>
到new-domain.com/forums/<anything>
.RewriteCond %{HTTP_HOST} ^old-domain.com RewriteCond %{REQUEST_URI} ^/forums/(.*)$ RewriteRule ^(.*)$ https://new-domain.com/forums/$1 [L,R=301]
這將重定向到
https://new-domain.com/forums/forums/<whatever>
,因為$1
反向引用包含整個 URL 路徑(從RewriteRule
模式擷取,而不是CondPattern)。您可以簡單地forums/
從RewriteRule
替換中刪除,但是,不需要檢查的上述條件,並且可以對其進行整理。REQUEST_URI
在文件頂部
.htaccess
,在任何現有的 WordPress 指令之前嘗試以下操作:RewriteCond %{HTTP_HOST} ^old-domain\.com [NC] RewriteRule ^(forums/.*) https://new-domain.com/$1 [R=302,L]
不需要附加條件,因為 URL 路徑可以由
RewriteRule
模式匹配(更有效)。
$1
反向引用包含以 . 開頭的整個 URL路徑forums/
。請注意,這是一個 302(臨時)重定向 - 僅當您確定它工作正常時才將其更改為 301(永久) - 以避免記憶體問題。
您需要清除瀏覽器記憶體,因為任何錯誤的 301 都可能已被記憶體。