# Как настроить 301 редирект на новый домен

**URL:** https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783
**Category:** Support
**Created:** [30.Январь.2021 16:50:24 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783 "2021-01-30T16:50:24Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Idan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/idan/32/198212_2.png) [@Idan](https://meta.discourse.org/u/Idan)
#### Post date: [30.Январь.2021 16:50:24 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/1 "2021-01-30T16:50:24Z")

</div>

Я редактирую nginx.conf. Я хочу перенаправить все страницы домена [domain1.com](http://domain1.com) на [domain2.com](http://domain2.com).

Как отредактировать файл, чтобы это заработало?

Я вижу строку:

```
if($http_host != domain1.com){
   rewrite (.*) https://domain1.com$1 permanent;
}

```

Если я изменю ‘=’ в условии if и укажу новый домен в правиле rewrite, сработает ли это, или мне нужно изменить что-то ещё?

Пример:

```
if($http_host = domain1.com){
   rewrite (.*) https://domain2.com$1 permanent;
}

```

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [30.Январь.2021 18:56:55 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/2 "2021-01-30T18:56:55Z")

</div>

В общем, я настраиваю это следующим образом:

```plaintext
server {
    listen 80;
    server_name domain1.com;
    return 301 https://domain2.com$request_uri;
}

```

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

---

<div class="post-metadata">

### Author: ![Idan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/idan/32/198212_2.png) [@Idan](https://meta.discourse.org/u/Idan)
#### Post date: [30.Январь.2021 19:04:24 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/3 "2021-01-30T19:04:24Z")

</div>

Спасибо, у меня есть несколько вопросов.

В моём конфигурационном файле есть следующие строки:

```
server {
   listen 80
    return 301 https://domain1.com$request_uri
}

```

Не понимаю, почему там по умолчанию стоит 301. Стоит ли мне переопределить это или создать новый блок выше или ниже него (как вы предоставили)? Обязателен ли параметр `server_name`?

Не нарушит ли перенаправление всего трафика процесс обновления сертификата Let’s Encrypt?

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [30.Январь.2021 19:15:25 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/4 "2021-01-30T19:15:25Z")

</div>

Вы редактируете nginx.conf внутри контейнера Discourse или используете внешний обратный прокси-сервер nginx?

Если это внутренний, то вместо этого следует внести изменения в файл app.yml. Существует множество примеров того, как это сделать.

Если вы настраиваете внешний обратный прокси-сервер nginx, вы можете создать новый файл, например `redirect.conf`, в папке `/etc/nginx/conf.d`, используя приведённый мной пример конфигурации.

---

<div class="post-metadata">

### Author: ![Idan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/idan/32/198212_2.png) [@Idan](https://meta.discourse.org/u/Idan)
#### Post date: [30.Январь.2021 19:17:05 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/5 "2021-01-30T19:17:05Z")

</div>

внутри контейнера. Я поищу решения для app.yml. Я видел одно для папки, надеюсь, найду решение для изменения домена. Спасибо.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [30.Январь.2021 19:27:21 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/6 "2021-01-30T19:27:21Z")

</div>

Вы пробовали это?

> [@(Superseded) Redirect additional domain(s) to your Discourse instance](https://meta.discourse.org/t/redirect-single-multiple-domain-s-to-your-discourse-instance/18492?u=itsbhanusharma):
>
> warning 2024-04-09 @pfaffman edited this to say that this is no longer necessary, as the current NGINX config in the [standard install](https://meta.discourse.org/t/142537?silent=true) redirects everything to https://HOSTNAME. You can test this by entering your IP address and see that it gets redirected. If you want multiple domains pointed to your server, you probably want them to have valid https certificates. To do that, follow instructions at [Set up Let’s Encrypt with multiple domains / redirects](https://meta.discourse.org/t/set-up-let-s-encrypt-with-multiple-domains-redirects/56685). So you want to redirect domain(s) to yo…

---

<div class="post-metadata">

### Author: ![Idan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/idan/32/198212_2.png) [@Idan](https://meta.discourse.org/u/Idan)
#### Post date: [30.Январь.2021 19:52:58 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/7 "2021-01-30T19:52:58Z")

</div>

Да, скоро это реализую. Большое спасибо за ваше время.

---

<div class="post-metadata">

### Author: ![Idan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/idan/32/198212_2.png) [@Idan](https://meta.discourse.org/u/Idan)
#### Post date: [30.Январь.2021 20:40:28 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/8 "2021-01-30T20:40:28Z")

</div>

@itsbhanusharma Я сейчас внедряю код. Мой вопрос: будет ли LetsEncrypt автоматически обновлять сертификаты, если я оставлю старый сервер работать какое-то время, пока Google не обновит URL-адреса? Нужно ли что-то добавить, чтобы обновление LetsEncrypt не срывалось из-за этого изменения с 301-редиректом?

Может ли это сработать: [Set up Let’s Encrypt with multiple domains / redirects](https://meta.discourse.org/t/setting-up-let-s-encrypt-with-multiple-domains/56685)

Я хочу исключить /.well-known/acme-challenge из редиректа.

[проблема](https://community.letsencrypt.org/t/redirect-to-https-causing-problems/60531/6) с 301-редиректом и LetsEncrypt

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [01.Март.2021 20:40:41 UTC](https://meta.discourse.org/t/how-to-create-301-redirect-to-a-new-domain/177783/9 "2021-03-01T20:40:41Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
