2016-03-28 25 views
3

我想將所有HTTP請求重定向到我的HTTPS(SSL)協議。請大家這不是一個重複。我已經嘗試過在SO上發現的每個問題,這些問題表明了這樣的問題,但沒有一個能起作用我嘗試了所有在互聯網上找到的東西,但仍然無法弄清楚問題所在。可能是某個地方必須啓用或類似的東西。重定向不在Apache中工作,HTTP爲HTTPS

我想從我的httpd.conf文件重定向,而不是從.htaccess重定向,因爲這是Apache Org提出的建議。我現在的重定向規則是

<VirtualHost *:80> 
    ServerName www.example.com 
    Redirect/https://www.example.com/ 
</VirtualHost > 
<VirtualHost *:443> 
    ServerName www.example.com 
</VirtualHost > 

我將一切位於/etc/httpd/conf/httpd.conf

的每一個變化之後,這些變化在我httpd.conf文件的,我也重新啓動我的服務器以下/etc/init.d/httpd restartservice httpd restart

我也嘗試以下

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R,L] 

但仍然當我訪問我的網站lik e www.example.com,我沒有重定向到https://www.example.com

我有一個VPS服務器,因此有足夠的權限訪問我的機器以啓用或禁用某些功能。

+0

你嘗試過在[這個問題]一切(http://stackoverflow.com/questions/16200501/http-to -https-Apache的重定向)? (並確保你重新啓動Apache) – DevDonkey

+0

@DevDonkey是的,先生。我已經試過了這個問題的所有內容。事實上我從中學到了如何從Http重定向到Https –

回答

0

這對我的工作:

# Force SSL 
    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP:X-Forwarded-Proto} =http 
    RewriteCond %{HTTP_HOST} ^example.com 
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]