2012-06-14 175 views
3

我試圖在域上強制使用HTTPS。它必須使用一種按域名而不是端口號工作的方法來完成(由於主機結構/設置)。.htaccess強制HTTPS

我最親密的嘗試是:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^.*$ https://www.mydomain.com/$1 [R=301,L] 

打字的時候「mydomain.com」到地址欄,自動重定向本工程以「https://mydomain.com」但是當我鍵入「www.mydomain .com「它不起作用。我認爲這是一個語法問題,因爲我對htaccess非常陌生,花了大約4個小時試圖從其他代碼創建解決方案。

指針的任何機會?


使設置更容易理解。

/public_html/ - 此文件夾中的所有文件涉及到www.mydomain.com
/public_html/subfolder - 這些文件夾包含還涉及mydomain.com
/public_html/subdomain文件 - 這些文件夾包含有關www.myotherdomain.com

我的其他領域是對的mydomain.com子域文件被列在主機上的cPanel中。
例如:subdomain.mydomain.comwww.myotherdomain.com相同。

希望能清除結構。

回答

2

只要對精確域mydomain.com(這就是RewriteCond測試的內容)發出請求,就會發生重定向。它不適用於任何其他域,也不檢測HTTPS。改爲:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L] 
+0

我使用Bluehost作爲我的主機。他們的設置方法是,主要網站(我正在嘗試使用https的網站)列在「public_html」下。 我所有的其他網站都在「public_html」的子文件夾中,受到.htaccess文件的影響,導致所有域現在重定向到「mydomain.com」 – Daniel

+0

@Daniel我看到了。我會更新我的答案。您的其他網站是否有任何mydomain子網域,或者它們都是不同的網域? – Paulpro

+0

我有一個域名爲每個,但對於他們是在cPanel上,他們必須分配子域名。例如:** www.mydomain.com **和** subdomains.mydomain.com **(這也是** www.myotherdomains.com **) – Daniel