2017-06-06 108 views
0

如何在我的網站上強制使用HTTPS?我嘗試了this答案的解決方案,但由於某種原因,當我通過單擊鏈接訪問索引頁時(它在將這些代碼行添加到.htaccess中之前工作正常),我被重定向到父目錄。另外,當我嘗試使用HTTP訪問我的網站時,它可以讓我做到這一點。我錯過了什麼?使用.htaccess強制HTTPS

+2

聽起來像是你有怎樣的問題尾部或丟失的斜線由a)該答案和b)您的設置處理。 – arkascha

+1

將'.htaccess'文件的內容添加到您的問題中。 「當我嘗試使用HTTP訪問我的網站時,我訪問索引頁面」/「時將其重定向到父目錄,它允許我這樣做」 - 是否重定向? – MrWhite

回答

1

使用Apache,你有幾種選擇 - 包括.htaccess。

看看這裏:

每文檔,最好的辦法是使用內部的非安全VirtualHost一個Redirect指令:

NameVirtualHost *:80 
<VirtualHost *:80> 
    ServerName mysite.example.com 
    DocumentRoot /usr/local/apache2/htdocs 
    Redirect permanent /secure https://mysite.example.com/secure 
</VirtualHost> 

<VirtualHost _default_:443> 
    ServerName mysite.example.com 
    DocumentRoot /usr/local/apache2/htdocs 
    SSLEngine On 
# etc... 
</VirtualHost> 

這裏是一個.htaccess示例,來自同一鏈接:

Redirect permanent /login https://mysite.example.com/login 

最後,看看這裏的其它故障排除提示(例如,忘記「了NameVirtualHost *:443」來打開名爲虛擬主機的端口443):

Why might Apache ignore a virtual host with a ServerName matching the requested URL?

+0

如果我使用'重定向永久/登錄https:// mysite.example.com /登錄',它給了我這個錯誤:'ERR_TOO_MANY_REDIRECTS'。另外,我使用altervista.org來託管我的網站,所以我不知道確切的文件位於哪裏。 – sgrontflix

+0

不知道爲什麼那篇文章似乎暗示使用'.htaccess'中的'Redirect'來執行HTTP到HTTPS重定向 - 這確實會導致重定向循環(除非目標URL是不同的服務器,這不太可能)? (是的,'Redirect'可以在'.htaccess'中使用,但不能用於這個目的。)如果你在'.htaccess'中這樣做,那麼你需要使用mod_rewrite,因爲你需要_need_來檢查當前請求是HTTP或已經是HTTPS。 – MrWhite

+0

@ user82217我跟隨了[this](https://wiki.apache.org/httpd/RewriteHTTPToHTTPS)鏈接中的第二個示例,但它似乎也不起作用。有什麼建議麼? – sgrontflix