Как перенаправить URL-адреса с помощью NGINX? (Временное постоянное)

Опубликовано: 2024-01-26

Оглавление
Что такое перенаправление?
Для чего необходимо перенаправление Nginx?
Распространенные методы перенаправления Nginx (временные и постоянные)
Как перенаправить URL-адреса с помощью Nginx (временно и постоянно)
Проверьте синтаксис Nginx
Перезапустите сервер Nginx.
Краткое содержание
Часто задаваемые вопросы

Что такое перенаправление?

Что касается Nginx, перенаправление — это функция веб-сервера, при которой трафик веб-сайта перемещается с одного URL-адреса на другой. Это одна из самых полезных функций, с помощью которой вы можете легко автоматически перенаправлять посетителей в другое место.

Хотя существует множество типов перенаправлений, два наиболее важных и часто используемых — это постоянное (301) и временное перенаправление (302).

В этом посте мы покажем вам методы перенаправления на таких примерах, как с www на не-www, перенаправление Nginx в домен, перенаправление Nginx с HTTP на HTTPS и т. д.


Читайте: Как работает URL-адрес перенаправления WordPress? 5 лучших методов


Для чего необходимо перенаправление Nginx?

  • Nginx предоставляет одну из важнейших функций, а именно перенаправление URL-адресов веб-сайтов на другой адрес на основе критериев.
  • Перенаправления Nginx очень удобны для пользователя и легко настраиваются, благодаря чему управление URL-адресами веб-сайтов становится очень гибким.
  • Это очень полезно для сохранения SEO-рейтинга страницы, особенно если вы переходите с одной CMS на другую.
  • Функция перенаправления также помогает сохранить позицию в поисковой выдаче, несмотря на изменения в структуре URL.

Распространенные методы перенаправления Nginx (временные и постоянные)

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

Временное перенаправление (Найдено код ответа: 302)

  • Из самого названия вы можете предугадать, какое действие будет оказывать временное лекарство. Ну, этот метод служит для временного изменения местоположения страницы с одного места на другое.
  • Код ответа: 302 Found используется для отображения временной пересылки страницы во время этих перенаправлений.
  • Чаще всего он используется при обслуживании веб-сайта; временное перенаправление информирует трафик или пользователей о временной недоступности сайта.
  • Его также можно использовать для перенаправления неполной страницы на другую точку или домашнюю страницу.
  • Пример сценария: Посетитель переходит на страницу веб-сайта, но в связи с техническим обслуживанием он перенаправляется на уведомление о том, что веб-сайт в настоящее время находится на обслуживании.
Temporary Redirection
Временное перенаправление (Найдено код ответа: 302)

Постоянное перенаправление (Найдено код ответа: 301)

  • Постоянное перенаправление Nginx используется для постоянного перемещения домена страницы.
  • Перенаправление 301 используется для обозначения постоянного перемещения страницы в этом контексте.
  • Это перенаправление в основном используется, когда пользователь хочет изменить доменное имя и больше не хочет, чтобы трафик веб-сайта получал доступ к старому местоположению.
Permanent Redirection
Постоянное перенаправление (Найдено код ответа: 301)

Как перенаправить URL-адреса с помощью Nginx (временно и постоянно)

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


Читайте: Могу ли я получить доступ к своему сайту WPOven через SSH?


Настройка конфигурации NGINX

  • Расположение файла конфигурации NGINX. Конфигурация NGINX обычно хранится в файле .conf, который представляет собой обычный текстовый файл, содержащий директивы и настройки для сервера.
  • Местоположение по умолчанию. Местоположение по умолчанию для файлов конфигурации NGINX часто находится в корневом каталоге документов вашего сайта (сайтов). В данном случае упоминается путь: /etc/nginx/sites-available/directory_name.conf .
  • Корневой каталог документов: в этом каталоге хранятся файлы вашего веб-сайта. Корень документа может варьироваться; для сервера с одним сайтом он может находиться в каталоге /html . Если на вашем сервере размещено несколько сайтов, корень документа может находиться в определенном каталоге домена, например /domain.com .
  • Именование файла конфигурации: имя вашего файла .conf соответствует вашему сайту. Например, если ваш сайт находится в каталоге /html , файл .conf может называться html.conf . Если он находится в каталоге типа /domain.com , то файл .conf может называться domain.com.conf .
  • Файл конфигурации по умолчанию: в /etc/nginx/sites-available/directory обычно находится файл по умолчанию, который можно использовать в качестве шаблона. Этот файл может содержать базовые конфигурации, которые вы можете скопировать или изменить в соответствии со своими потребностями.
  • Создание нового файла конфигурации. Кроме того, у вас есть возможность создать новый файл .conf. Например, вы можете создать файл с именем html.conf или domain.com.conf в зависимости от структуры вашего сайта и соглашений об именах.

Вы можете быть удивлены, узнав, что в Nginx есть встроенный инструмент, называемый директивой «rewrite». Это очень удобный инструмент, который упрощает перенаправление. Самое приятное то, что вам не нужно ничего особенного с этим делать, он автоматически появляется всякий раз, когда вы устанавливаете новый Nginx.

Эта директива «rewrite» предназначена не только для выполнения базовых перенаправлений, но и весьма универсальна. т.е. вы сможете создавать два типа перенаправлений: постоянные и временные.

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

Сначала откройте файл конфигурации, введя следующую команду в терминале.

$ sudo vi /etc/nginx/nginx.conf

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

1. Перенаправление Nginx постранично

Временное перенаправление страницы на страницу Nginx

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage redirect;
}

Постоянное перенаправление страницы на страницу Nginx

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage permanent;
}

Из приведенных выше команд вы заметили, что если вы хотите создать постоянное перенаправление, все, что вам нужно сделать, это заменить «redirect» на «permanent» в конце директивы.

2. Перенаправление Nginx с WWW на Nginx без www

Постоянное www на перенаправление без www:

server {
# Permanent redirect to non-www
server_name www.example.com;
rewrite ^/(.*)$ http://example.com/$1 permanent;
}


Примечание . Если вы хотите перенаправить с www на www, вам просто нужно заменить URL-адреса веб-сайтов, упомянутые в приведенной выше команде. т.е. замените www.example.com на example.com и наоборот.


3. Как перенаправить URL-адрес с HTTP на HTTPS в Nginx?

Прежде чем выполнять это перенаправление, не забудьте установить SSL-сертификат. Перенаправление на HTTPS имеет свои преимущества. Это помогает защитить ваш сайт от всех атак MIMT, кражи данных и т. д. И даже их порты разные, например, HTTP использует порт 80, тогда как HTTPS использует 443.

Итак, чтобы защитить всю конфиденциальную информацию, передаваемую между вами и вашим посетителем, вам понадобятся следующие команды:

server {
listen 80;
server_name www.domain.tld;
return 301 https://www.domain.tld$request_uri;
}

4. Nginx перенаправляет URL-адрес на другой URL-адрес.

Если вы хотите выполнить постоянное перенаправление, то есть перенаправление nginx на другой URL-адрес 301, используйте следующую команду:

В новый домен из старого домена

server {
listen 80;
listen 443 ssl;
server_name olddomain.com www.olddomain.com;
return 301 $scheme://www.newdomain.com$request_uri;
}

ИЛИ

server {
# Permanent redirect to new URL
listen 443 ssl;
# Add this line to listen on the HTTPS port and enable SSL server_name olddomain.com;
ssl_certificate /path/to/your/ssl_certificate.crt; # Update with the actual path to your SSL certificate
ssl_certificate_key /path/to/your/ssl_certificate_key.key; # Update with the actual path to your SSL certificate key
# Additional SSL settings can be configured here
rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
# Update to use 'https' protocol
}

  • Мы настроили перенаправление для нашего веб-сайта с помощью инструмента под названием директива «rewrite» в Nginx.
  • ^/(.*)$ — это регулярное выражение, которое будет использовать все, что находится после последней косой черты (/) в URL-адресе.
  • Например, если кто-то попытается получить доступ к http://olddomain.com/index.html , он будет использовать часть index.html .
  • Итак, если вы собирались http://olddomain.com/index.html , он плавно перенаправит вас на http://newdomain.com/index.html .
  • Идея состоит в том, чтобы плавно перенаправлять пользователей на тот же контент в новом домене.
  • Чтобы убедиться, что это перенаправление является постоянным, мы добавили специальное ключевое слово «Permanent» после директивы rewrite .
  • Это сообщает браузерам и поисковым системам, что это постоянное изменение, с использованием так называемого кода состояния HTTP 301.

5. Nginx перенаправляет на другой домен без изменения URL-адреса.

Предположим, вы хотите перенаправить домен olddomain.com на newdomain.com без изменения URL-адреса. Это означает, что когда вы вводите olddomain.com, он должен перенаправляться на newdomain.com, но URL-адрес по-прежнему должен отображать olddomain.com.

Вот как вы можете подойти,

server {
listen 80;
server_name olddomain.com;

location / {
proxy_pass http://newdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}

6. Перенаправление Nginx на конкретный сайт

server {
listen 80;
server_name example.com;
return 301 http://newexample.com$request_uri;
}


Проверьте синтаксис Nginx

Чтобы проверить правильность синтаксиса nginx, используйте следующую команду:

nginx -t

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


Перезапустите сервер Nginx.

Не забудьте перезагрузить сервер Nginx, чтобы эти правила вступили в силу, с помощью команды:

sudo systemctl restart Nginx


Краткое содержание

Как уже упоминалось выше, Nginx оказался самым мощным и удобным веб-сервером, позволяющим легко выполнять постоянные и временные редиректы Nginx.

Прочитав этот блог, теперь вы знаете, как создавать URL-адреса перенаправления с помощью NGINX. Будет ли nginx перенаправляться с HTTP на HTTPS, с одного домена на другой домен и т. д.

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

Благодаря этой полезной функции вы можете легко изменить структуру своего веб-сайта в соответствии с тенденциями и требованиями и не бояться потери трафика и рейтинга в поисковой выдаче.

WPOven предлагает варианты хостинга под управлением WordPress для вашего следующего проекта NGINX. Свяжитесь с нами, чтобы обсудить лучшие варианты для вас.

Если у вас есть какие-либо вопросы или предложения, пожалуйста, сообщите нам об этом в разделе комментариев ниже:


Часто задаваемые вопросы

Как перенаправить URL-адрес в nginx?

В Nginx есть встроенный инструмент, называемый директивой «rewrite». Это очень удобный инструмент, который упрощает перенаправление. Самое приятное то, что вам не нужно ничего особенного с этим делать, он автоматически появляется всякий раз, когда вы устанавливаете новый Nginx.

Какой код перенаправления для Nginx?

Nginx довольно универсален и предлагает вам два типа перенаправлений: постоянное с кодом ответа 301 и код ответа временного сокращения — 302.

Для чего используется NGINX?

Nginx — универсальный и высокопроизводительный веб-сервер и обратный прокси-сервер. Он обычно используется для следующих целей: веб-сервер , обратный прокси-сервер , балансировщик нагрузки , завершение SSL/TLS , кэширование , сеть доставки контента (CDN) , шлюз API , поддержка WebSocket , безопасность и архитектура высокой доступности .