Apache htaccess Redirect - Почему моя строка запроса в двойных кавычках выполняет поиск и замену?

Redirect 302 "/blog" /

Я ожидаю, что это правило будет принимать запросы от /blog в / а также /blog/stuff в /; вместо /blog/stuff в //stuff

Поведение идти от /blog/stuff в //stuff это то, что я ожидал бы от незамеченного регулярного выражения

что здесь происходит? Я думал, что Redirect должен был перенаправить на другой URL, а не заменять совпадение целевой строкой.

Почему одна директива не делает одну вещь?

1 ответ

Кавычки не работают так, как вы ожидаете, в Redirect директивы. Для синтаксиса:

Redirect [status] [URL-path] URL

[...]
Тогда любой запрос, начинающийся с URL-Path, вернет запрос перенаправления клиенту в месте расположения целевого URL. Дополнительная информация о пути помимо соответствующего URL-пути будет добавлена ​​к целевому URL.

Вы, наверное, ищете RedirectMatch директива вместо

RedirectMatch 302 /blog.* /

Указанный шаблон / путь - это просто синтаксический сахар, доступный для включения путей, содержащих (пространства).

Другие вопросы по тегам