Я хотел бы перенаправить все URL-адреса на https на моем хосте и корневую папку в подпапку.
Моя конфигурация:
Redirect permanent / https://myhost.com/
RedirectMatch ^/$ /sub-folder/
Первое перенаправление работает хорошо, все HTTP-запросы перенаправляются на https, а второй ничего не делает.
Какой-нибудь совет, пожалуйста?
Спасибо.
После некоторого исследования я справился с этим. Проблема заключалась в том, что первое перенаправление было перенаправлено на порт 443, поэтому вторым перенаправлением нужно управлять в VirtualHost: 443. И, как вы сказали, в директиве RedirectMatch требуются кавычки.
Большое спасибо.
Похоже, проблема в вашем первом правиле:
Redirect permanent / https://myhost.com/
Что можно было изменить на:
Redirect permanent http://myhost.com/ https://myhost.com/
Кроме того, регулярное выражение не работает, если оно не заключено в кавычки, поэтому ^/$
следует изменить на "^/$"
Второе перенаправление не наблюдается, потому что первое перенаправление происходит бесконечное количество раз.
Мне удалось отладить это, добавив пару записей в свой /etc/hosts
файл следующим образом:
127.0.0.1 kerneldeimos.local
127.0.0.1 subdomain.kerneldeimos.local
Затем я добавил ваши правила перезаписи (для удобства используя поддомен вместо HTTPS):
Redirect permanent / http://subdomain.kerneldeimos.local
RedirectMatch "^/$" /sub-folder/
Это сработало после того, как я изменил свою конфигурацию на следующее:
Redirect permanent http://kerneldeimos.local http://subdomain.kerneldeimos.local
RedirectMatch "^/$" /sub-folder/