.htaccess как перенаправить несколько страниц на один?

Я перемещаю хосты, и структура URL будет меняться по мере того, как новый сайт (то же имя домена) будет сделан Wordpress.

У меня много URL-адресов, где первая часть названия страницы одинакова, и все они должны быть перенаправлены на одну страницу на новом сайте. Например.

    http://www.example.com/binfet-timeinthepark.htm литий> http://www.example.com/binfet-backtothecity.htm литий> http://www.example.com/binfet-justmeetmehalfway.htm литий>

все нужно перейти к:

http://www.example.com/bev-binfet/

Есть ли способ написать правило, чтобы зафиксировать все это? Существует около 50 различных случаев, т.е. В этом примере «binfet» находится в начале, но содержит около 50 разных имен.

ОБНОВЛЕНИЕ

В ответ на @Fayaz

У меня около 50 случаев, когда URL-адрес начинается с того же имени, но затем имеет разные окончания. Для каждого случая все URL-адреса для этого случая переходят на одну новую страницу.

Eg.

http://www.example.com/xyz-sometext.htm http://www.example.com/xyz-someothertext.htm ... все перейдут на новый URL

http://www.example.com/xyznewplace/

3 голоса | спросил user2250892 5 FebruaryEurope/MoscowbSun, 05 Feb 2017 09:23:15 +0300000000amSun, 05 Feb 2017 09:23:15 +030017 2017, 09:23:15

2 ответа


2

Решение:

Я предлагаю вам использовать полный URL-адрес в RewriteRule.

Итак, для всех URL-адресов, начинающихся с binfet, чтобы перейти на /bev-binfet/, вы должны добавить следующую директиву в свой файл .htaccess (перед другими правилами перезаписи):

RewriteRule ^binfet http://www.example.com/bev-binfet/ [R=301,L]

Причина:

Скорее всего у вас есть другие правила, которые перенаправляют ссылки non-www на www. Поэтому в этом случае использование полного URL-адреса позволит избежать дополнительных перенаправлений. Например, кто-то пытается получить доступ:

http://example.com/binfet-timeinthepark.htm

Без полного URL-адреса в RewriteRule он будет сначала перенаправлен на:

http://example.com/bev-binfet/

, а затем, наконец:

http://www.example.com/bev-binfet/

С решением, упомянутым здесь, вы избежите первого перенаправления & перейдите непосредственно к:

http://www.example.com/bev-binfet/

Дальнейший запрос:

По какой-то причине я чувствую, что на ваш вопрос больше. Вы сказали:

  

Существует около 50 различных случаев, т.е. В этом примере «binfet» находится в начале, но содержит около 50 разных имен.

A. . Вы имели в виду 50 URL-адресов, где URL-адрес начинается с определенной фразы (например, binfet)?

или

B. . Вы имели в виду, что есть 50 таких стартовых фраз (например, одна группа URL-адресов, начинающихся с binfet, другая группа URL-адресов, начинающихся с xyz и т. д.), и каждая группа попадает в уникальный URL-адрес?

Если A , то решение, приведенное здесь, достаточно. Однако, если B , то либо вам придется писать это правило 50 раз для каждой начальной фразы, либо вам нужно будет найти лучший шаблон, который может охватить все из них.

Обновите свой вопрос более подробно, если это B .

ответил Fayaz 6 FebruaryEurope/MoscowbMon, 06 Feb 2017 11:24:54 +0300000000amMon, 06 Feb 2017 11:24:54 +030017 2017, 11:24:54
0
  

В этом примере «binfet» находится в начале, но содержит около 50 разных имен.

Чтобы перенаправить все URL-адреса, запускающие binfet, затем попробуйте следующую директиву mod_rewrite перед ваши существующие директивы WP в ваш файл .htaccess:

RewriteRule ^binfet /bev-binfet/ [R=301,L]
ответил MrWhite 5 FebruaryEurope/MoscowbSun, 05 Feb 2017 13:45:32 +0300000000pmSun, 05 Feb 2017 13:45:32 +030017 2017, 13:45:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132