Redirect 301 /air-india-trial/air-india-promo-conditions/ /features/
Идет к
/trial/air-india-promo-conditions/
Предположительно, вы имеете в виду запрос для /air-india-trial/air-india-promo-conditions/
, который перенаправляется на /trial/air-india-promo-conditions/
(то есть директива не "go to" что-либо).
... из-за вызова второго перенаправления. Я уже пытался поместить https://example.com/
перед вторым URL в Redirect 301, но это не работает.
Вы не можете поместить https://example.com/
как часть URL в первом аргументе - если это то, что вы имеете в виду? Это просто не будет соответствовать. Он сопоставляется только с URL-путем.
Поскольку директива Redirect
имеет соответствие префикса (и все, что после совпадения копируется в конец целевого URL), вам необходимо заказать ваши Redirect
директивы в порядке специфичности. Наиболее конкретное перенаправление c (ie. Longest path) должно быть до того, как перенаправления менее специфицированные c. Директивы
mod_alias Redirect
не объединяются, как вы, вероятно, подразумеваете.
Итак, в вашем примере следующее должно работать для перенаправления /air-india-trial/air-india-promo-conditions/
на /features/
:
Redirect 301 /air-india-trial/air-india-promo-conditions/ /features/
Redirect 301 /air-india-trial/ /trial/
(Хотя вы, возможно, и предполагаете, что директивы уже в порядке (или Вы просто ссылаетесь на порядок в своем вопросе?) В этом случае все еще существует конфликт с другой директивой или вы видите кешированный ответ.)
После внесения этого изменения вам потребуется очистить кеш браузера. так как 301 (постоянное) перенаправление будет кэшироваться браузером.
Если вы специально хотите перенаправить только /air-india-trial/
, а не /air-india-trial/<something>
, тогда вам нужно использовать директиву RedirectMatch
, которая соответствует регулярное выражение и не соответствует префиксу. Например:
RedirectMatch 301 ^/air-india-trial/$ /trial/
Кроме того, если у вас есть какие-либо перенаправления mod_rewrite (RewriteRule
), то они могут конфликтовать. Поскольку разные модули Apache работают независимо и в разное время на протяжении запроса, следует избегать смешивания перенаправлений из обоих модулей из-за потенциальных конфликтов. (mod_rewrite всегда запускается первым на Apache 2.4, несмотря на очевидный порядок этих директив в .htaccess
.)