Как перенаправить URL-адреса с конкретными идентификаторами на новые URL-адреса на новое доменное имя?

Я хочу перенаправить все страницы, где внутри URL есть определенное слово. Оба веб-сайта имеют те же статьи.

Например:

videos.example.com.ph/its-showtime-hashtags-hashtags-and-dawns-popular-dance-moves_966aaafd8.html

следует перенаправить на

example.com.ph/its-showtime-hashtags-hashtags-and-dawns-popular-dance-moves_8a4521384.html

Разница заключается в домене и идентификаторе в конце. Все статьи с URL http://videos.example.com.ph и слово its-showtime внутри должен быть перенаправлен в ту же статью на http://example.com.ph/

Если это слишком сложно, перенаправление на главную страницу example.com.ph тоже будет в порядке.

4 голоса | спросил Aesir John 3 Jam1000000amSun, 03 Jan 2016 08:09:56 +030016 2016, 08:09:56

1 ответ


5

Вы не можете перенаправить simple «все статьи», если исходные и целевые идентификаторы в URL-адресе разные, и нет простого способа сопоставления между ними. Например, как мы узнаем, что 966aaafd8 сопоставляется с 8a4521384

Чтобы сделать это, вам нужно создать RewriteMap в конфигурации вашего сервера (содержащий все идентификаторы источника /получателя) или переписывать запросы на другой скрипт, который выполняет поиск, а затем перенаправляет.

Однако вы можете перенаправить все запросы в корень документа на другой домен, если это нормально. Но это, как правило, плохой пользовательский опыт (и, следовательно, плохой для SEO), если это вызывает беспокойство.

В верхней части вашего файла .htaccess в поддомене videos.example.com.ph:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} =videos.example.com.ph [NC]
RewriteRule ^its-showtime http://example.com.ph/ [NC,R=302,L]

Если субдомен videos.example.com.ph и основной домен физически размещены в разных местах, вы можете удалить RewriteCond.

Обратите внимание, что это соответствует its-showtime в начале URL-адреса (как в ваших примерах). Если вам нужно, чтобы он соответствовал в любом месте в URL-адресе, просто удалите префикс ^.

Обратите внимание также, что это совпадение без учета регистра (NC - NOCASE) - если это не требуется, удалите флаг NC из RewriteRule. (Флаг NC на RewriteCond должен остаются, поскольку это просто ловит неверные запросы, которые в противном случае все еще будут разрешаться.)

Измените 302 (временный) перенаправление на 301 (постоянный) перенаправление, когда вы уверены, что он работает нормально - считая, что это должно быть постоянное перенаправление?

ответил MrWhite 3 Jpm1000000pmSun, 03 Jan 2016 14:57:09 +030016 2016, 14:57:09

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

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

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