Как правильно реализовать DNS и перенаправления с поддомена на домен

Мы обновляем наш веб-сайт (example.co.uk), часть которого включает настройку 301 редиректа со старого сайта в Файл .htaccess - это нормально и просто.

На старом сайте была область, в которой использовался поддомен (xyz.example.co.uk), который указывал на стороннюю платформу.

Новый сайт теперь включает эту область (на нескольких разных страницах), поэтому субдомен больше не требуется. Как лучше всего поступить, чтобы лучше практиковаться и сохранить все преимущества SEO из существующих ссылок? Я часами искал ответы в Интернете, но не могу найти ничего, что внушало бы мне уверенность в реализации.

С точки зрения SEO, в идеале мы хотим, чтобы 301 перенаправлял старые страницы следующим образом: https://xyz.example.co.uk/page1 на https: / /example.co.uk/page2 https://xyz.example.co.uk/page2/page3 до https://example.co.uk/page4/page5 { {1}} И т. Д.… Однако я понимаю, что размещение их в.htaccess (на главном сервере домена) не будет работать, поскольку мы пытаемся перейти от субдомена к домену?

Во-первых, нужна ли нам больше запись DNS для субдомена? Или он должен оставаться на месте? Субдомен в настоящее время является CNAME, но могу ли я изменить его на запись A и указать на тот же IP-адрес, что и основной домен?

Я рассмотрел много вариантов (к вашему сведению, хостинг с Cloudways - Digital Ocean, а DNS управляется через CloudFlare):

A) Не беспокойтесь о перенаправлении страницы на страницу 301 и вместо этого добавьте следующее в основной домен .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^xyz.example.co.uk$
RewriteRule ^(.*)$ https://example.co.uk/page/ [R=301,L]

Но плохо ли это для SEO?

B) Ничего не делать с перенаправлением и просто укажите поддомен в основном домене с помощью записи A, а затем воспользуйтесь поисковой оптимизацией.

C) Настройте правило страницы в Cloudflare и перенаправьте с https://xyz.example.co.uk/ * на https://example.co.uk/page - в каком случае я предполагаю, что мне нужно будет сохранить запись DNS субдомена? Однако следует ли изменить его на запись A и указывать на IP-адрес основного сервера домена?

Я думаю, что сейчас достаточно запутался, поэтому любая помощь будет принята с благодарностью.

1
задан 20 March 2021 в 14:58
2 ответа

Лучший вариант для SEO - это 301 перенаправление URL-адресов субдоменов на новые URL-адреса.

У вас должна быть запись DNS для xyz.example.co.uk , чтобы люди могли разрешить IP-адрес сервера.

Затем вам нужно, чтобы на этом IP-адресе был запущен HTTP-сервер для обслуживания необходимых вам перенаправлений. В вашем случае это может быть тот же сервер, который вы в настоящее время используете для основного сайта (при условии, что провайдер хостинга поддерживает настройки поддоменов).

На HTTP-сервере вам необходимо определить виртуальный сервер для xyz.example.co.uk , который затем будет содержать правила перенаправления, которые вы хотите использовать.

Также необходимо убедиться, что на https://xyz.example.co.uk установлен действующий сертификат TLS.

0
ответ дан 24 April 2021 в 01:03

SEO-оптимизация - это больше тема для сайта вопросов и ответов Webmasters SE .

Технически:

Во-первых, нужна ли нам больше запись DNS для субдомена?

Вам нужна запись DNS для субдомена xyz.example.co.uk оставаться для существования любого вида перенаправления. Без этой записи DNS любой запрос для xyz.example.com завершится неудачно с сообщением «хост не найден» или аналогичной ошибкой DNS ...

google domain not found
safari domain not found

Чтобы перенаправление происходило в веб-браузерах, на любом хосте должен быть запущен веб-сервер укажите субдомен xyz.example.co.uk .

Если у вас есть политика HSTS и / или старый поддомен также был доступен по HTTPS, вам также необходимо настроить этот веб-сервер с действующим сертификатом SSL для xyz.example.co.uk .

Если вы укажете субдомен xyz.example.co.uk на тот же веб-сервер, который используется для вашего основного веб-сайта (например, с записью CNAME), у вас есть два варианта:

  • Вы создайте дополнительную запись «VirtualHost» специально для xyz.example.co.uk
    (мое рекомендуемое решение, поскольку оно сохраняет конфигурацию красивой и отдельной)
  • Вы обрабатываете запросы для xyz.example. co.uk на существующем веб-сайте www.example.com . Затем:
    • либо вы не выполняете никаких специальных действий, а затем http://xyz.example.co.uk отобразит http: // www. example.com индексная страница и запрос http://xyz.example.co.uk/page2/page3 отобразит страницу http://www.example.co. uk / page2 / page3 , если он существует, или страницу с ошибкой 404, если его нет.
    • в качестве альтернативы вы настраиваете правила перезаписи, которые срабатывают, когда xyz.example.co.uk используется для доступа к вашему сайту, и выполняете перенаправление, которое вы также можете выполнить с отдельного VirtualHost

. простая конфигурация в стиле Apache (поскольку вы говорили о мерзости, которой является файл .htaccess ) использует директиву Redirect , которая перезапишет запросы для http: // или https://xyz.example.com/service/foo.txt с по https: //www.example.com / service / foo.txt :

# existing VirtualHost for www.example.com 
<VirtualHost *:80>
    Servername www.example.com
    ...
</VirtualHost>
<VirtualHost *:443>
    Servername www.example.com
    SSLCertificateFile "/etc/apache2/conf/ssl/www.example.com.crt"
    SSLCertificateKeyFile "/etc/apache2/conf/ssl/www.example.com.key"
    ...
</VirtualHost>

# new minimal VirtualHost entries for xyz.example.co.uk
<VirtualHost *:80>
    Servername xyz.example.com
    Redirect "/" "https://www.example.com/"
</VirtualHost>
<VirtualHost *:443>
    Servername xyz.example.com
    SSLCertificateFile "/etc/apache2/conf/ssl/xyz.example.com.crt"
    SSLCertificateKeyFile "/etc/apache2/conf/ssl/xyz.example.com.key"
    Redirect "/" "https://www.example.com/"
</VirtualHost>

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

Поскольку вы уже упоминали, что контент из старого поддомена не может быть найден в каком-то месте, указанная выше директива Redirect может быть не лучшим решением.

Вместо этого вы можете перенаправить все старые URI на одну целевую страницу (объясняя, что XYZ устарел, изучите новый сайт, используя эту карту сайта.) С помощью директивы RedirectMatch :

# new minimal VirtualHost entries for xyz.example.co.uk
<VirtualHost *:80>
    Servername xyz.example.com
    RedirectMatch "*" "https://www.example.com/xyz-is-deprecated.html"
</VirtualHost>
<VirtualHost *:443>
    Servername xyz.example.com
    SSLCertificateFile "/etc/apache2/conf/ssl/xyz.example.com.crt"
    SSLCertificateKeyFile "/etcl/apache2/conf/ssl/xyz.example.com.key"
    RedirectMatch "*" "https://www.example.com/xyz-is-deprecated.html"
</VirtualHost>

Наиболее трудоемким является сопоставление каждой старой страницы субдомена xyz с новыми страницами на вашем основном веб-сайте. Это можно сделать, например, с помощью директивы RewriteMap .

Самым простым отображением является текстовый файл, который сопоставляет старый путь URI с новым путем URI, например файл карты: /etc/apache2/xyz-to-www.txt

##
## xyz-to-www.txt - Map old URI's from xyz.example.com to 
##                  corresponding URI's on www.example.com
##
/             /xyz-is-deprecated.html
/page1        /page2 
/page2/page3  /page4/page5 

А затем это отобразит http (s): //xyz.example.co.uk/page1 в https://www.example.co.uk/page2 и все, что не сопоставлено будет перенаправлен на страницу https://www.example.com/yz-is-deprecated.html :

# new minimal VirtualHost entries for xyz.example.co.uk
<VirtualHost *:80>
    Servername xyz.example.com
    RewriteMap xyz-to-www "txt:/etc/apache2/xyz-to-www.txt"
    RewriteRule "(.*)" "https://www.example.com${xyz-to-www:$1}" [R]
</VirtualHost>
<VirtualHost *:443>
    Servername xyz.example.com
    SSLCertificateFile "/etc/apache2/conf/ssl/xyz.example.com.crt"
    SSLCertificateKeyFile "/etcl/apache2/conf/ssl/xyz.example.com.key"
    RewriteMap xyz-to-www "txt:/etc/apache2/xyz-to-www.txt"
    RewriteRule "(.*)" "https://www.example.com${xyz-to-www:$1|/xyz-is-deprecated.html}" [R]
</VirtualHost>

Примечание: все вышеперечисленное не проверено и предназначено только для иллюстрации концепций.

0
ответ дан 24 April 2021 в 01:03

Теги

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