2017-12-12 8 views
0

HTTPからHTTPSへのリダイレクトを強制したい。私は私の条件HEREをチェックし、良いように思わHTTPリターンエラー400 を書き換えルールを使用してHTTPSを強制する

<VirtualHost *:1882> 
    ServerAdmin *** 
    ServerName 127.0.0.1 
    ServerAlias ApplicationServer 
    ProxyRequests Off 

    #Force SSL 
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} 1882 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

    #Certificats SSL 
    SSLEngine on 
    SSLVerifyClient none 
    SSLCertificateFile "D:/ssl/server.crt" 
    SSLCertificateKeyFile "D:/ssl/server.key" 

    DocumentRoot "${INSTALL_DIR}/none" 

    ErrorLog "${INSTALL_DIR}/logs/app_error.log" 
    CustomLog "${INSTALL_DIR}/logs/app_access.log" combined 

    <Location /> 
    ProxyPass http://localhost:3000/ retry=0 
    ProxyPassReverse http://localhost:3000/ 
    Order deny,allow 
    Allow from all 
    </Location> 
</VirtualHost> 

しかし一方で、テスト、HTTPS仕事、しかし:私は次のことを試してみました。

書き換えルールをどこか別の場所に書き込む必要がありますか?

EDIT:このバーチャルホストを追加することにより、固定

:HTTPSのために、プレーンテキストトラフィックを処理するための1(HTTP)、他:あなたは2つの異なる仮想ホストを必要とするので

<VirtualHost *:1884> 
    #Force SSL 
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} 1884 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://<URL_TO_HTTPS_VIRTUALHOSTL>%{REQUEST_URI} [L,R=301] 
</VirtualHost> 

答えて

1

あなたの構成が不完全です。私たちが見るものは、2つの組み合わせです。この仮想ホストではSSL以外のトラフィックを捕捉すると考えられていますが、同時に統合失調症と400のエラーにつながるSSLディレクティブを与えています。

+0

基本的に、この書き換えルールだけで新しいVirtualhostを作成する必要がありますか? "#Force SSL"セクションでVirtualhost *:1884のように? – Lollipop

+1

はい、あなたがEDITで言ったことからうまくいくようです。 –

関連する問題