Недавно я обновил свой сервер Apache с 2.0 до 2.2.24, но у меня проблема с RedirectMatch
.Проблема с Apache RedirectMatch с относительным путем
Мой старый RedirectMatch
директивы:
RedirectMatch ^/abc/abcd /otherurl/someaction
В Apache 2.0, если мы будем использовать HTTPS для доступа, например. https://www.example.com/abc/abcd
, он будет перенаправлен на https://www.example.com/otherurl/someaction
.
Но в apache 2.2.24 он возвращает http://www.example.com/otherurl/someaction
(HTTP, а не HTTPS) - кажется, Apache изменил схему запроса.
Если я проверяю HTTP-ответ на http watch, я нахожу разницу между 2.0 и 2.2.24.
Под Apache 2.0 заголовок ответа HTTP /otherurl/someaction
- относительный URL-адрес пути.
Но на Apache 2.2.24 заголовок Location
- http://www.example.com/otherurl/someaction
- полный абсолютный URL.
Есть идеи по этой проблеме?
Не могли бы вы добавить всю свою конфигурацию вокруг 'RedirectMatch'? Если я правильно понял вашу проблему, вы пропустили часть SSL, когда была сделана переадресация? – Qben
Возможно, ваш сайт 'https' не включен в Apache 2.2, что делает сайт' http' по умолчанию одним из них? – Qben
FWIW под Apache 2.0 абсолютный целевой URL строго необходим, так как Apache не будет «исправлять» целевой URL (т. Е. Значение заголовка ответа HTTP «Location») абсолютным (это было изменено в Apache 2.2.6). Если Apache не делает целевой URL абсолютным, это зависит от пользовательского агента для разрешения URL. В [RFC 2616] (https://tools.ietf.org/html/rfc2616#page-135) (теперь заменяется [RFC 7321] (https://tools.ietf.org/html/rfc7231#section-7.1 .2) было указано, что заголовок «Location» должен быть абсолютным, поэтому некоторые «старые» пользовательские агенты могут не принимать относительный URL. – MrWhite