Проблема с перенаправлением папки с mod_alias - PullRequest
0 голосов
/ 25 декабря 2009

Еще один вопрос, следующий из этой темы . Единственный оставшийся элемент, который я не могу решить, - это наличие списка для несуществующей сейчас папки «/ 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, поэтому любая помощь будет с благодарностью получена.

Ответы [ 2 ]

1 голос
/ 25 декабря 2009

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

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

0 голосов
/ 25 декабря 2009

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

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

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

RedirectMatch 301 ^/team/ /team.html
...