Вопрос

Еще один вопрос, вытекающий из этот поток.Единственный оставшийся элемент, который я не могу решить, это то, что есть список для ныне несуществующей папки '/ team /', но если я добавлю это в свой файл .htaccess, это приведет к разрыву всех других записей .htaccess для файлов в этой папке, т.Е.

redirect 301 /team/ /team.html
redirect 301 /team/joe_bloggs.htm /team.html
redirect 301 /team/joe_bloggs.html /team.html
redirect 301 /team/bill_smith.htm /team.html
redirect 301 /team/bill_smith.html /team.html

Если я затем попытаюсь посетить /team/joe_bloggs.htm, это приведет меня к

/team.html/joe_bloggs.htm

Если я смогу это исправить, это может помочь мне понять, как решить мой первоначальный вопрос и уменьшить огромный список страниц перенаправления в моем файле .htaccess, поэтому я с благодарностью принимаю любую помощь.

Это было полезно?

Решение

Вам нужно изменить порядок и поставить "redirect 301 /team/ /team.html" в конце.Он читает строку за строкой и, если находит что-то подходящее, заменяет это.

Кроме того, я думаю, вам нужно научиться добавлять символы ^ и $.^ означает, что выражение должно начинаться, а $ означает, что выражение должно закончиться.Так, ^/team/$ значит, это должно быть именно /team/ и оно не будет совпадать /team/joe_bloggs.htm

Другие советы

Тот Самый Redirect директива работает с префиксами путей.И в данном случае префикс пути, используемый в вашей первой директиве (/team/) совпадает, и остальная часть пути добавляется к новому URL-адресу.

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

Попробуй RedirectMatch вместо этого:

RedirectMatch 301 ^/team/ /team.html
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top