![Как переписать все на HTTPS кроме порта](https://rvso.com/image/1618774/%D0%9A%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C%20%D0%B2%D1%81%D0%B5%20%D0%BD%D0%B0%20HTTPS%20%D0%BA%D1%80%D0%BE%D0%BC%D0%B5%20%D0%BF%D0%BE%D1%80%D1%82%D0%B0.png)
Я установил Netdata на веб-сервере, чтобы получить статистику. Чтобы увидеть ее, мне нужно использовать:http://что бы ни:19999. Однако на моем веб-сервере все перенаправляется на HTTPS с помощью:
RewriteEngine On
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Есть ли элегантный способ убедиться, что все, что направлено на порт 19999, будет отправлено на HTTP? (и не будет перенаправлено снова и снова на HTTPS ..)
Я думаю, это можно сделать, поставив какое-то условие перед показом RewriteRule, верно? Но как? Страница руководства по rewriterules просто сбивает меня с толку, так что любая помощь приветствуется!
решение1
Вы можете использовать этот код, чтобы перенаправить все службы, использующие определенный порт, на использование HTTP вместо HTTPS.
RewriteEngine On
RewriteCond %{SERVER_PORT} 19999
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Вы также можете использовать этот код для фильтрации других портов:
RewriteCond %{SERVER_PORT} !19999
который запустит следующий код для всех веб-страниц, не использующих порт 19999.
решение2
Попробуйте использоватьПеренаправитьвместо:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>