Назад | Перейти на главную страницу

Переписать правило HTTPS на другой порт

У меня есть Apache с SSL, работающий на порту 444. Мне нужно переписать все URL / запросы, начинающиеся с https://servername (это порт по умолчанию 443) на https://servername:444.

У меня есть правило для .htaccess:

RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ https://%{SERVER_NAME}:444%{REQUEST_URI}

Это не работает. Чтобы проверить условие, я изменил порт на условие как RewriteCond %{SERVER_PORT} =80 и все HTTP-запросы принудительно отправляются на HTTPS.

Если я правильно понимаю вашу ситуацию, ваша проблема в том, что %{SERVER_PORT} никогда не равно 443, поскольку ваш сервер не прослушивает этот порт. Таким образом, ваш RewriteCond %{SERVER_PORT}=443 состояние никогда не будет истинным.

Фактически, я не верю, что возможно выполнить переписывание, которое вы намереваетесь, если только вы не установите сервер, прослушивающий порт 443, только для обработки начальных входящих запросов, которые вы затем немедленно перенаправляете на порт 444. Но если вы это сделаете, с таким же успехом вы можете вообще не беспокоиться о перенаправлении; просто обрабатывайте HTTPS-запросы на 443.