Какую правильную строку htaccess направить из поддомена в основной домен


У нас есть блог на поддомене, который необходимо переместить в основной домен

  • т.е.: blog.example.com/post-title
  • до example.com/blog/post-title

Нужно ли мне создавать совпадение перенаправления для каждого отдельного сообщения/блога или я могу выполнить широкое совпадение через.htaccess?

В настоящее время они находятся в разных каталогах, так как устанавливаются разные WordPress. Поддомен в конце концов отпадет, потому что мы консолидируемся.

Author: Stephen Ostermiller, 2018-09-21

1 answers

В настоящее время они находятся в разных каталогах...

Поскольку поддомен и основной домен указывают на разные подкаталоги, требуемое перенаправление такое же, как если бы оно находилось на совершенно разных доменах/ серверах.

Вам просто нужен один mod_alias Redirect в файле .htaccess в корне вашего поддомена blog.

  1. Удалите существующие директивы в .htaccess (в противном случае, фронт-контроллер WordPress и любой другой mod_rewrite директивы все равно будут обработаны).

  2. Добавьте следующие мод_алии Redirect:

    Redirect 302 / https://example.com/blog/
    

Измените перенаправление 302 (временное) на 301 (постоянное), только если вы уверены, что оно работает нормально.

Директива Redirect является совпадающей с префиксом. Все, что после совпадения добавляется в конец целевого URL. например, blog.example.com/post-title перенаправляется на example.com/blog/post-title.


ОБНОВЛЕНИЕ:

Поддомен отпадет в конечном счете потому что мы консолидируемся.

Вам нужно будет сохранить поддомен на месте "как можно дольше". Очевидно, что без поддомена вы не сможете перенаправить - альтернативы сохранению SEO и удобства использования нет. Вам нужно будет сохранить поддомен на месте, по крайней мере, до тех пор, пока новый сайт не будет проиндексирован и поддомен не исчезнет из поисковой выдачи, что может занять значительное время, в зависимости от размера и возраста старого сайта. Обратные ссылки могут занять намного дольше и, возможно, никогда не будет обновляться.

Вам не нужно сохранять старый сайт, и вам не обязательно нужен старый поддомен, чтобы указывать на исходное местоположение. Вы можете изменить поддомен так, чтобы он указывал на корень нового сайта, и включить перенаправление как часть вашего канонического перенаправления. Таким образом, накладные расходы на поддержание поддомена минимальны. Например, используя mod_rewrite в верхней части файла .htaccess на вашем новом WordPress сайт:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule (.*) https://example.com/$1 [R=301,L]

Это перенаправляет любой запрос, который не предназначен для вашего канонического хоста (который включает любые поддомены и www), и перенаправляет на ваш канонический хост. Если ваш файл .htaccess находится в подкаталоге /blog, вам потребуется изменить RewriteRule подстановка для чтения: https://example.com/blog/$1.

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

Возможно, возникнут некоторые сложности, если вы планируете реализовать HSTS.

 1
Author: MrWhite, 2018-09-21 14:59:54