RedirectMatch 301 для только HTML-файла - PullRequest
0 голосов
/ 16 марта 2010

Мне нужно сделать массовое перенаправление 301 для всех страниц, заканчивающихся на .html для моего сайта. Я ищу, чтобы переместить все старые файлы .html в подпапку ir.

RedirectMatch 301 (.*)\.html$ http://www.domain.com/folder/$1.html

Когда я добавляю это и обновляю браузер, я получаю тонну папок / папок / папок после URL, т.е.

domain.com / папка // папка / папка / папка .....

Есть идеи, что может быть не так?

Спасибо, если вы можете помочь

Ответы [ 2 ]

1 голос
/ 16 марта 2010

Проблема в том, что 'folder / foo.html' также соответствует условию RedirectMatch, и папка добавляется снова (и снова, и снова ...)

Поэтому вам, вероятно, нужно что-то вроде этого (не проверено):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/folder/
RewriteRule (.*)\.html$ /folder/$1.html [R=301,L]

RewriteCond должен проверить, что URI не начинается с / folder, и только если это условие выполнено, будет проверяться RewriteRule.

К сожалению, на данный момент у меня нет доступной установки Apache для тестирования подобных вещей, поэтому вам, вероятно, придется попробовать ее самостоятельно. Но я надеюсь, что у вас есть идея.

0 голосов
/ 17 марта 2010

Если ваши старые html-файлы находятся в корне, я бы предложил следующее:

RedirectMatch 301 ^([^/]+)\.html$ http://www.domain.com/folder/$1.html
...