以下是我在htaccess檔案中的重定向規則。它們將https://olddomain.com重定向到https://subdomain.domain.com。 但網頁并沒有被重定向。我仍然有olddomain.com/page1正在加載。
`RewriteCond %{HTTP_HOST} ^old.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule ^/?$ "https://subdomain.domain.com/" [R=301,L]`。
我添加了以下規則,該規則部分起作用,域名后面的斜線不見了。現在的重定向是https://subdomain.domain.compage1,而不是 https://subdomain.domain.com/page1
RewriteRule ^ https://subdomain.domain.com/{REQUEST_URI} [L,R=301]
如何解決這個問題。請提供任何幫助。(我試過重定向,但最后沒有轉義,但這不起作用。
)RewriteRule ^ https://subdomain.domain.com{REQUEST_URI} [L,R=301])/code>
uj5u.com熱心網友回復:
RewriteCond %{HTTP_HOST}. ^old.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule ^/?$ "https://subdomain.domain.com/" [R=301,L]
這些只重定向到主頁(根目錄)。要將任何URL路徑重定向到目標的相同URL路徑,請使用以下方法:
RewriteCond %{HTTP_HOST}. ^(www.)?old.com [NC]
RewriteRule ^ https://subdomain.domain.com%{REQUEST_URI} [R=301,L]
我已經合并了你的兩個條件。
注意,語法是%{REQUEST_URI}(有%前綴)來參考REQUEST_URI服務器變數。否則,"{REQUEST_URI}"就只是字面的文字。
沒有必要對substition字串中的所有這些字符進行反斜線消除。
在測驗之前,請清除您的瀏覽器快取。并且最好使用 302(臨時)重定向進行測驗,以避免潛在的快取問題。
我添加了以下規則,它部分地起了作用,但域名后面的斜線缺失。
的斜線不見了。現在的重定向是
https://subdomain.domain.compage1而不是
https://subdomain.domain.com/page1
RewriteRule ^ https://subdomain.domain.com/{REQUEST_URI} [L,R=301]
除了上述指令不可能做到這一點外--你也許看到的是一個快取的回應,這是先前錯誤的重定向的結果。301(永久)重定向是由瀏覽器持續快取的。始終使用302(臨時)重定向進行測驗,最好是在瀏覽器開發工具中禁用瀏覽器快取("網路 "標簽上的選項)。
更新:
替代性解決方案
這需要放在根檔案.htaccess中(如果它在子目錄.htaccess中,它將不起作用,與上面的規則不同)。
RewriteCond %{HTTP_HOST}. ^(www.)?old.com [NC]
RewriteRule (.*) https://subdomain.domain.com/$1 [R=301,L]
這使用了一個反向參考而不是REQUEST_URI服務器變數。
這個重定向需要放在.htaccess檔案的頂部,在大多數其他指令之前。
在測驗之前,請確保你已經清除了你的瀏覽器快取。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/320524.html
標籤:
