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

Apache2: два перенаправления

Я хотел бы перенаправить все 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/