我使用http協議已經很長時間了。多年后,我實施了一個域名證書。現在,我正試圖讓使用https:// 協議的網站被索引,但谷歌仍然對http協議進行索引。
我嘗試了幾種方法。
我已經嘗試了幾種方法。我在DirectAdmin中啟用了 "強制SSL與https重定向 "選項。
我改變了我的.htaccess,使瀏覽器將每個選項重定向到https協議:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.] .[^.] $
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RedirectMatch permanent index.php/(.*) https://www.***.com/$1
RewriteCond%{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html) [NC]
RewriteRule ^index.php$ https://www.***.com/ [R=301,L]
RewriteCond%{THE_REQUEST} ^GET /.*/index.(php|html) HTTP
RewriteRule (.*)index.(php|html)$ /$1 [R=301,L]
RewriteCond %{HTTP_HOST}. ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} [OR]。^www.domain.com$
RewriteRule ^home.html$ "https://www.domain.com/" [R=301,L]
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]. ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain.com$ [OR] 改寫為%{HTTP_HOST}。^www.domain.com$
RewriteRule ^home$ "https://www.domain.com/" [R=301,L]
我已經創建了一個sitemap.xml,其中只包含https:// 協議。
在Google Search Console中,我看到網站今天被索引了,而且 "Google選擇的規范URL "仍然是http協議。
有人知道我需要做什么來解決這個問題嗎?
uj5u.com熱心網友回復:
我改變了我的.htaccess,所以瀏覽器將每個選項重定向到https協議:
實際上,你沒有。
你根本沒有HTTP到HTTPS的重定向,而且第一條規則(非www到www的重定向)專門維護了被請求的任何協議(HTTP或HTTPS)。
試試以下兩條規則,代替你的第一條(非www到www)規則:
# non-www to www (and HTTPS)
RewriteCond %{HTTP_HOST} ^[^.] .[^.] $
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# 從HTTP到HTTPS(已經是www)
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
其余的指令也可以簡化...
# 重定向到path-info(洗掉 "index.php")。
RewriteRule ^(. /)?index.php/(.*) /$1 [R=301,L]
# 將 "index.php "從URL的末尾移除
RewriteRule ^(. /)?index.php$ /$1 [R=301,L] ?
# 重定向 "home "和 "home.html "到檔案根目錄
RewriteRule ^home(.html)?$ / [R=301,L] # 重定向 "home "和 "home.html "到檔案根部。
在后面的指令中,你似乎不需要以域名為目標,所以我洗掉了那些看似多余的條件。
我將洗掉index.php的兩條規則簡化/縮減為一條指令。除非你有一個前臺控制器,將所有的請求路由到index.php,否則你不需要額外的condition來檢查THE_REQUEST。(在你發布的指令中沒有前臺控制器。
(盡管如果你沒有前臺控制器的話,洗掉并重定向到path-info的規則有點不合時宜?)
我已經把mod_alias的RedirectMatch改成了相應的*1mod_rewrite規則。mod_alias指令的處理時間在mod_rewrite之后,盡管組態檔中的指令順序明顯,所以建議避免混合來自兩個模塊的重定向,以免發生意外沖突。
(*1我也 "糾正 "了這一點,以避免匹配<anything>index.php形式的URL,而不是<anything>/index.php,我想這是我的意圖。)
清除你的瀏覽器快取,先用302(臨時)重定向進行測驗,以避免任何潛在的快取問題。
我還嘗試洗掉了規范鏈接元素
你不應該洗掉 "規范鏈接元素",只要你鏈接到正確的規范URL,即HTTPS www.
。你實際上沒有說明你 "切換到HTTPS "有多長時間了,但這可能需要一些時間。谷歌自然傾向于HTTPS,但由于你的網站的年齡,你可能有許多HTTP反向鏈接。重要的是,你要將HTTP重定向到HTTPS。
你應該注冊這兩個屬性。在GSC中注冊HTTP和HTTPS,并監測兩者的索引狀態。
NB:這種性質的問題通常最好在網站管理員堆疊中提出。https://webmasters.stackexchange.com/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/310730.html
標籤:
上一篇:我需要幫助設定.htaccess
