Старый домен изначально имел структуру постоянных ссылок, которая выглядит следующим образом: 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 Не могли бы вы рассказать об этом подробнее и, если возможно, дать код замены? Я обязательно позабочусь о том, чтобы это не повлияло на существующие пути.
Вам буквально нужно заменить «заголовок» простым регулярным выражением, соответствующим вашим заголовкам. Я не знаю ваших титулов, вы нам не сказали. Если вы боретесь с самим регулярным выражением, я предлагаю вам поработать с одним из бесконечных руководств по началу работы именно по этой теме. Вы должны уметь обращаться с инструментами, которые используете сами, такие здесь правила. И вы выиграете, если попробуете и изучите свои инструменты.
Спасибо за вклад @arkascha, очень признателен! Решение найдено, обновлю пост :)
Решение найдено.
Если вы находитесь в похожей ситуации (пожалуйста, обратитесь к сообщению), просто добавьте что-то подобное над перенаправлением на уровне домена.
RewriteCond %{HTTP_HOST} (w*)domain1\.com$ [NC]
RewriteRule ^2020/\d+/\d+/\d+/(.+)$ https://domain2.com/$1 [L,R=301]
Конечно, это возможно, все, что вам нужно сделать, это заменить «заголовок» (что бы это ни было) в правиле, которое у вас есть, на общий шаблон, соответствующий всем возможным таким заголовкам. Однако вам также необходимо позаботиться о том, чтобы эти перенаправления не применялись к существующим действительным путям. С чем мы не можем помочь, поскольку вы ничего не знаете о своем контенте и ресурсах.