![ポート以外すべてをHTTPSに書き換える方法](https://rvso.com/image/1618774/%E3%83%9D%E3%83%BC%E3%83%88%E4%BB%A5%E5%A4%96%E3%81%99%E3%81%B9%E3%81%A6%E3%82%92HTTPS%E3%81%AB%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B%E6%96%B9%E6%B3%95.png)
統計情報を取得するために、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>