Как перенаправить URL-адреса с помощью NGINX? (Временное постоянное)
Опубликовано: 2024-01-26Что такое перенаправление?
Что касается 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 используется для отображения временной пересылки страницы во время этих перенаправлений.
- Чаще всего он используется при обслуживании веб-сайта; временное перенаправление информирует трафик или пользователей о временной недоступности сайта.
- Его также можно использовать для перенаправления неполной страницы на другую точку или домашнюю страницу.
- Пример сценария: Посетитель переходит на страницу веб-сайта, но в связи с техническим обслуживанием он перенаправляется на уведомление о том, что веб-сайт в настоящее время находится на обслуживании.
Постоянное перенаправление (Найдено код ответа: 301)
- Постоянное перенаправление Nginx используется для постоянного перемещения домена страницы.
- Перенаправление 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 , безопасность и архитектура высокой доступности .
Рахул Кумар — веб-энтузиаст и контент-стратег, специализирующийся на WordPress и веб-хостинге. Обладая многолетним опытом и стремлением быть в курсе тенденций отрасли, он создает эффективные онлайн-стратегии, которые привлекают трафик, повышают вовлеченность и повышают конверсию. Внимание Рахула к деталям и способность создавать интересный контент делают его ценным активом для любого бренда, стремящегося улучшить свое присутствие в Интернете.