У меня есть сервер apache, использующий два домена SSL (без поддержки SNI) в разных портах, примерно так:
У меня есть правило перезаписи для перенаправления http: //host2.tld: 80 to: 444 (и то же самое для host1). Тогда возникает проблема:
У меня есть папка "папка" в корне host2. Если я попытаюсь получить доступ http: //host2.tld/folder/, все в порядке и я попал в https: //host2.tld: 444 / папка / как и ожидалось. Теперь, если я наберу http: //host2.tld/folder, apache перенаправляет меня на http: //host2.tld: 444 / папка /, которого не существует.
Поскольку перенаправление из «папки» в «папку /» выполняется автоматически, что я могу сделать, чтобы исправить мою проблему?
<VirtualHost *:80>
ServerName host2.tld
RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}:444%{REQUEST_URI} [R=301,L]
</VirtualHost>
Удалите L из правила перезаписи. Эта опция указывает, что правило является «последним» правилом, и дальнейшая перезапись выполняться не будет.
Когда вы идете в http://host2.tld/folder
он переписывает uri, добавляя косую черту, но больше не обрабатывает.
Вы также можете захотеть / нуждаться в добавлении условия к перезаписи, чтобы предотвратить цикл при каждом запросе.