ポート以外すべてをHTTPSに書き換える方法

ポート以外すべてをHTTPSに書き換える方法

統計情報を取得するために、Web サーバーに Netdata をインストールしました。統計情報を表示するには、次を使用する必要があります。http://何でも:19999ただし、次のコードを使用して、Web サーバー上のすべてが HTTPS にリダイレクトされます。

 RewriteEngine On  
 RewriteRule .*   https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]  

ポート 19999 宛てのあらゆるものが HTTP に送信されることを確認するためのエレガントな方法は
ありますか? (そして、HTTPS に何度もリダイレクトされないようにする)。 show RewriteRule の前に何らかの条件を設定することで実行できると思いますが、どのようにすればよいのでしょうか? rewriterules のマニュアル ページは混乱を招くので、どのような助言でも歓迎します。

答え1

このコードを追加すると、特定のポートを使用するすべてのサービスをHTTPSではなくHTTPにリダイレクトできます。

RewriteEngine On
RewriteCond %{SERVER_PORT} 19999 
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

このコードを使用して他のポートをフィルタリングすることもできます。

RewriteCond %{SERVER_PORT} !19999

これにより、19999 ポートを使用しないすべての Web ページに対して次のコードが実行されます。

答え2

使ってみるリダイレクトその代わり:

<VirtualHost *:80>

    ServerName example.com

    Redirect permanent / https://example.com/

</VirtualHost>

関連情報