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

Как вообще добавить завершающую косую черту для архитектуры Apache + CDN (без использования Apache mod_rewrite)?

Я хотел бы добавить косую черту в конце, когда она отсутствует в URL-адресе запроса:

когда пользователь запрашивает https://example.com/blog, он должен быть перенаправлен на https://example.com/blog/

когда пользователь запрашивает https://example.com/abc.jpg, его следует подавать как есть

Когда сервер Apache, кажется, обычно это делается mod_rewrite. К сожалению, наша система включает CDN (AWS CloudFront), что вызывает проблемы при использовании mod_rewite: запрос будет перенаправлен на исходный сервер, а URL-адрес в браузере изменится на URL-адрес исходного сервера.

Я тоже пробовал mod_aliasс RedirectMatch. Но кажется, что регулярным выражениям слишком сложно выполнять сложные шаблоны соответствия (на самом деле, для этого требуется регулярное выражение, а не шаблон соответствия).

Итак, как вообще добавить завершающую косую черту для Apache + CDN архитектура?

Редактировать:

Благодаря Майклу оказалось, что добавление заголовка Host в белый список в CloudFront решает мою проблему: перенаправленный URL-адрес остается таким же, как старый (с косой чертой).

Этот ответ не решает проблему, обратитесь к заголовку. Однако, поскольку ключевая проблема заключается в том, как перенаправить на правильный URL-адрес, я принимаю следующий ответ. Приписывается Майклу

Причина перенаправления на исходный URL-адрес связана с пересылкой заголовка CloudFront. Если мы внесем в белый список Host заголовок, он будет перенаправлен на тот же домен, что и запрос пользователя.