我有一個 WordPress 多站點,其基本 URL 為https://example.com。子站點的初始 URL 為https://example.com/forinstance,可以在 WordPress 中將其更改為別名https://forinstance.com。
但我想將所有 URL 從https://example.com/caseinpoint ALSO 重定向到https://forinstance.com。在 WordPress 中沒有辦法做到這一點,所以我試圖在我的 htaccess 檔案中做到這一點。我無法讓它作業。
我嘗試過以下變體:
RewriteCond %{HTTPS_HOST} ^example.com/caseinpoint$
RewriteRule (.*)$ https://forinstance.com [R=301,L]
但它總是在 example.com 上出現 404。
但是,這確實適用于其他子站點:
RewriteCond %{HTTPS_HOST} ^ejemplo.com$
RewriteRule (.*)$ https://perinstanza.com [R=301,L]
所以這似乎與多站點有關。請問如何重定向example.com/forinstance?!
uj5u.com熱心網友回復:
您發布的任何規則實際上都不會做任何事情,因為HTTPS_HOST它不是有效的服務器變數。它應該是HTTP_HOST,它代表HostHTTP 請求標頭(因此是HTTP_前綴)。IE。請求的主機名(或域)。
標Host頭不包含您嘗試在第一條規則中匹配的 URL 路徑。
大概您希望將剩余的 URL 路徑重定向到新域上的相同路徑。例如。https://example.com/caseinpoint/<url>應該重定向到https://forinstance.com/<url>?正如您所說,您不只是將https://example.com/caseinpoint(缺少尾部斜杠)重定向到https://forinstance.com/(主機名后總是有一個斜杠)嗎?
在這種情況下,您可以在任何現有 WordPress 指令之前.htaccess,在根檔案頂部執行以下操作。
RewriteCond %{HTTP_HOST} ^(www\.)example\.com [NC]
RewriteRule ^caseinpoint(?:$|/(.*)) https://forinstance/$1 [R=302,L]
這也允許一個可選的 www 子域。
反向參考包含模式中第$1一個捕獲子RewriteRule 模式的值,即。“caseinpoint/”之后的 URL 路徑(不包括斜杠)。
首先使用 302(臨時)重定向進行測驗,以避免任何潛在的快取問題。僅更改為 301(永久)重定向 - 如果這是意圖 - 一旦您確認它按預期作業。在測驗之前,您可能需要清除瀏覽器快取。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/482756.html
標籤:WordPress .htaccess 重定向 多站点
上一篇:通用查詢解決方案
