Cómo reescribir todo en HTTPS excepto el puerto

Cómo reescribir todo en HTTPS excepto el puerto

Instalé Netdata en un servidor web para obtener estadísticas. Para ver esos debo usar:http://lo que sea:19999. Sin embargo, todo se redirige a HTTPS en mi servidor web usando:

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

¿Alguna forma elegante de asegurarse de que todo lo dirigido al puerto 19999 vaya a HTTP? (y no ser redirigido una y otra vez a HTTPS...)
Supongo que se puede hacer teniendo alguna condición antes del programa RewriteRule, ¿verdad? ¿pero cómo? La página de manual de rewriterules simplemente me confunde, ¡así que cualquier ayuda es bienvenida!

Respuesta1

Puede usar agregar este código para redirigir todos los servicios que usan un puerto específico para usar HTTP en lugar de HTTPS.

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

También puedes usar este código para filtrar otros puertos:

RewriteCond %{SERVER_PORT} !19999

que ejecutará el siguiente código para todas las páginas web que no utilicen el puerto 19999.

Respuesta2

Intenta usarRedirigiren cambio:

<VirtualHost *:80>

    ServerName example.com

    Redirect permanent / https://example.com/

</VirtualHost>

información relacionada