Как перенаправить старый домен, используя другую структуру постоянных ссылок?

Старый домен изначально имел структуру постоянных ссылок, которая выглядит следующим образом: domain1.com/%year%/%month%/%date%/%post-id%/post-title, и хотя я изменил структуру постоянных ссылок на что-то простое domain1.com/post -title позже перенаправление было таким же простым, как установка плагина перенаправления.

Но недавно сайт переехал на новый домен; назовем его domain2.com. Следующий код был добавлен в .htaccess для перенаправления всех старых URL-адресов на соответствующие им URL-адреса в новом домене:

RewriteCond %{HTTP_HOST} ^domain1.com$ [OR]        

RewriteCond %{HTTP_HOST} ^www.domain1.com$         

RewriteRule ^(.*)$ https://domain2.com/$1 [R=301,L]

Этот код работает для большинства страниц, за исключением тех, которые используют старую структуру постоянных ссылок.

Старые URL-адреса постоянных ссылок вызывают слишком много перенаправлений (старое доменное имя со старой структурой постоянных ссылок -> старое доменное имя с новой структурой постоянных ссылок -> новое доменное имя с новой структурой постоянных ссылок), что я не думаю, хорошо для SEO.

На страницах есть хорошие обратные ссылки, поэтому цель здесь — передать ценность новому домену.

Теперь я понимаю, что могу использовать этот код для отдельных URL-адресов (кредит MrWhite)

RewriteCond %{HTTP_HOST} (w*)domain1\.com$ [NC]
RewriteRule ^2020/10/25/2257/title/?$ https://domain2.com/title/ [L,R=301]

Но поскольку это потребовало бы добавления большого количества строк, мне любопытно, можно ли это сделать с помощью общего фрагмента кода - URL-адреса старых постоянных ссылок старого домена должны перенаправлять на текущую структуру постоянных ссылок нового домена.

Оба домена размещены на одном сервере.

Конечно, это возможно, все, что вам нужно сделать, это заменить «заголовок» (что бы это ни было) в правиле, которое у вас есть, на общий шаблон, соответствующий всем возможным таким заголовкам. Однако вам также необходимо позаботиться о том, чтобы эти перенаправления не применялись к существующим действительным путям. С чем мы не можем помочь, поскольку вы ничего не знаете о своем контенте и ресурсах.

arkascha 22.12.2020 13:33

@arkascha Не могли бы вы рассказать об этом подробнее и, если возможно, дать код замены? Я обязательно позабочусь о том, чтобы это не повлияло на существующие пути.

JustAnotherNoob 22.12.2020 13:37

Вам буквально нужно заменить «заголовок» простым регулярным выражением, соответствующим вашим заголовкам. Я не знаю ваших титулов, вы нам не сказали. Если вы боретесь с самим регулярным выражением, я предлагаю вам поработать с одним из бесконечных руководств по началу работы именно по этой теме. Вы должны уметь обращаться с инструментами, которые используете сами, такие здесь правила. И вы выиграете, если попробуете и изучите свои инструменты.

arkascha 22.12.2020 14:45

Спасибо за вклад @arkascha, очень признателен! Решение найдено, обновлю пост :)

JustAnotherNoob 22.12.2020 16:09
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
4
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение найдено.

Если вы находитесь в похожей ситуации (пожалуйста, обратитесь к сообщению), просто добавьте что-то подобное над перенаправлением на уровне домена.

RewriteCond %{HTTP_HOST} (w*)domain1\.com$ [NC]
RewriteRule ^2020/\d+/\d+/\d+/(.+)$ https://domain2.com/$1 [L,R=301]

Другие вопросы по теме