Welcome! Log In Create A New Profile

Advanced

Re: 301 редирект для нескольких страниц сайта

Maxim Dounin
September 19, 2012 05:10AM
Hello!

On Wed, Sep 19, 2012 at 12:56:08AM -0400, anebilyca wrote:

> Приветствую!
>
> Немного о пациенте. Стоит nginx/0.7.65.

Just a side note: стоит обновится.

> Необходимо настроить 301 редирект с нескольких страниц сайта на подобные им,
> но более короткие.
>
> Самый первый вопрос, это как точно называется файл, в котором необходимо это
> всё прописывать? Например, в апаче это .htacces. А здесь?

А здесь - просто пишем в конфиге. Конфиг можно разбить на
несколько файлов с помощью директивы include, но не обязательно (и
обычно нежелательно, т.к. затрудняет чтение).

Note well: в linux'ах исторически сложилось, что вместо одного
конфига nginx.conf по умолчанию используется множество отдельных
файлов, включённых в nginx.conf с помощью директивы include.
Такой подход более удобен для автоматического конфигурирования, но
очень плох для начинающих. Поэтому если сомневаетесь, где что
писать - возможно имеет смысл на время отказаться от всех этих
sites-available/sites-enabled, и писать конфигурацию полностью в
nginx.conf.

> Ну и как я увидел, есть несколько вариантов реализации. Хотелось бы узнать у
> вас какой применим в моей ситуации и некоторые комментарии по вопросам,
> которые у меня возникли.
>
> И так.
>
> 1. Способ.
>
> Код:
> server {
> listen 80;
> server_name www.host.ru/1-page;
> rewrite ^ www.host.ru/2-page$request_uri? permanent; #301 redirect
> }

Это бессмысленная конструкция, в директиве server_name указывается
имя сервера, а не конкретной страницы. Подобные конструкции
применяются для перенаправления всего сервера целиком (e.g. чтобы
добавить/убрать "www."), но не годятся для перенаправления
конкретных страниц.

http://nginx.org/r/server_name/ru

[...]

> 2. Способ.
>
> Код:
> server {
> include redirect.conf;
>
>
> redirect.conf:
>
> location = /1-page { return 301 http://host.ru/2-page; }
> location = /3-page { return 301 http://host.ru/4-page; }
>
> }
> Можно ли употреблять такую структуру, если я буду редиректить на разные
> страницы, а не на главную, как я видел в одном примере?

Да, можно. Правда, в 0.7.65 подобная конструкция работать не
будет, "return 301 текст" работает начиная с 0.8.42. Нужно либо
обновиться, либо использовать

location = /1-page {
rewrite ^ http://host.ru/2-page permanent;
}

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

301 редирект для нескольких страниц сайта

anebilyca September 19, 2012 12:56AM

Re: 301 редирект для нескольких страниц сайта

kron September 19, 2012 03:04AM

Re: 301 редирект для нескольких страниц сайта

Maxim Dounin September 19, 2012 05:10AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 154
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready