Dot-Htaccess
通過 htaccess 將所有 http 和 https 非 www URL 重定向到 https://www.example.com
由於太長和太複雜的原因(它涉及多層公司繁文縟節,導致其他人沒有購買我要求的萬用字元 SSL 證書),我必須設置一個域以將所有請求重定向到https://www .example.com – 帶有子域的安全協議
www
。編輯: SSL 證書僅對 www.xyz.com 域有效。
所以:http://example.com>、<http://www.example.com>和<https://example.com>都應該重定向到<https://www.example.com。
我的 .htaccess-fu 充其量是弱的,我似乎無法讓它工作。注意:如果有影響的話,託管在 Media Temple 上。
到目前為止,我的 .htaccess 文件如下所示:
RewriteEngine On RewriteCond %{HTTPS} !^on$ RewriteRule (.*) https://www.example.com/$1 [R,L] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
這可能不是您要找的網站! 您試圖訪問example.com,但實際上您訪問了一個標識為www.example.com的伺服器。這可能是由於伺服器上的錯誤配置或更嚴重的原因造成的。您網路上的攻擊者可能試圖讓您訪問example.com的假冒(且可能有害)版本。
您不應該繼續,特別是如果您以前從未看到此站點的此警告。
任何幫助我度過最後一個難關的幫助將不勝感激!
您需要一個對兩者都有效的證書,
example.com
並且www.example.com
如果您要將這些請求重寫為www.example.com
(或完成此操作的兩個單獨的證書)。沒有辦法解決這個問題。
@Simbus82 關於顛倒規則是正確的。這是一種更通用的方法。
RewriteEngine On # ensure www. RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # ensure https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]