![So schreiben Sie alles außer dem Port auf HTTPS um](https://rvso.com/image/1618774/So%20schreiben%20Sie%20alles%20au%C3%9Fer%20dem%20Port%20auf%20HTTPS%20um.png)
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>