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]
Другие вопросы по тегам