Sitewide 301 Redirect с подмножеством различных перенаправлений
Я пытаюсь сделать переадресацию 301 по всему сайту для сайта, содержащего около 400 страниц, но у меня также есть подмножество около 10 отдельных страниц, которые не следуют перенаправлению по всему сайту и должны указывать куда-то еще.
Любые идеи, как отформатировать такие правила перенаправления, чтобы перенаправление по всему миру не конфликтовало с перенаправлением страниц подмножества?
Я начинаю с правила перенаправления по всему миру:
Опции +FollowSymLinks RewriteEngine на RewriteRule (. *) http://www.name.com/$ 1 [R = 301, L]
1 ответ
Правила перезаписи анализируются в порядке их написания, поэтому порядок их перечисления также определяет приоритет. Учитывая это, вы должны сначала сопоставить URI запроса с 10 отдельными страницами и соответственно вернуть перенаправление, а затем определить перенаправление по всему сайту.
Если 10 отдельных страниц имеют один целевой URL-адрес, правило соответствия может быть одним, в противном случае вы должны выполнять одно перенаправление для каждого URI запроса.
Будьте внимательны, чтобы использовать флаг [L] для первых перенаправлений, чтобы сервер вышел из подпрограммы, если правило соответствует, и я бы также предложил добавить строку
RewriteBase /
что является ключевым для некоторых версий Apache, в которых пропуск этой строки может вызвать ошибку http bad conf.
Опции + FollowSymLinks # переключатель на движке перезаписи: RewriteEngine On RewriteBase / # Правила для индивидуальных перенаправлений: RewriteRule http://example.com/myUrl-1 http://www.example.org/new-1 [R=301,L] RewriteRule http://example.com/myUrl-4 http://www.example.org/new-2 [R=301,L] RewriteRule http://example.com/myUrl-3 http://www.example.org/new-3 [R=301,L] #...и так далее #sitewide правило перенаправления: RewriteRule (.*) Http://www.example.org/$1 [R=301]