So schreiben Sie alles außer dem Port auf HTTPS um

So schreiben Sie alles außer dem Port auf HTTPS um

Ich habe Netdata auf einem Webserver installiert, um Statistiken zu erhalten. Um diese anzuzeigen, muss ich Folgendes verwenden:http://was auch immer:19999. Auf meinem Webserver wird jedoch alles auf HTTPS umgeleitet, und zwar mit:

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

Gibt es eine elegante Möglichkeit, sicherzustellen, dass alles, was an Port 19999 gesendet wird, an HTTP geht? (Und nicht immer wieder an HTTPS umgeleitet wird …)
Ich denke, das lässt sich erreichen, indem man vor der Show RewriteRule eine Bedingung stellt, oder? Aber wie? Die Manpage zu RewriteRules verwirrt mich einfach, also ist jede Hilfe willkommen!

Antwort1

Sie können diesen Code hinzufügen, um alle Dienste, die einen bestimmten Port verwenden, auf HTTP statt HTTPS umzuleiten

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

Sie können diesen Code auch verwenden, um andere Ports zu filtern:

RewriteCond %{SERVER_PORT} !19999

Dadurch wird der nächste Code für alle Webseiten ausgeführt, die den Port 19999 nicht verwenden.

Antwort2

Versuchen Sie es mitUmleitenstattdessen:

<VirtualHost *:80>

    ServerName example.com

    Redirect permanent / https://example.com/

</VirtualHost>

verwandte Informationen