Re: Map работа в нескольких vhosts

Валентин Бартенев vbart at nginx.com
Tue Jul 22 11:06:00 UTC 2014


On Tuesday 22 July 2014 06:00:43 No1 wrote:
> Добавлено в http секций: 
> map_hash_max_size 4096;
>     map_hash_bucket_size 8192;
> 
>     map $uri $new {
> include redirect.conf;
> }
> 
> В секций vhost'a 1 :
> if ($new) {
>    return 301 $new;
> }
> На vhost 2 так же + добавленно удаление слеша rewrite ^(.+)/$ $1 permanent;

Зачем вы делаете второй редирект, когда вам нужно просто убрать /
из адреса для обработки через map?

Рекомендуется читать не "вики", а документацию, она вся тут:
http://nginx.org/ru/docs/


> На 1 работает все как надо,те ссылки /news/ /news ведут к /new_news
> На 2 не работает,если добавить к uri / ,поэтому пришлось удалять /.
> 
> Вид redirect.conf :
> /news /new_news;
> /news_1 /new_news_1;
> 
> Правильное поведение или должно все таки на всех vhost's работать одинаково?
> 

Поскольку вы опять утаили конфигурацию, то сказать что и почему - не 
представляется возможным.  В одинаковых конфигурациях будет работать
одинаково.  У вас они, очевидно, разные.

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

Что и как на самом деле происходит стоит смотреть не в браузере,
а более простыми инструментами, вроде netcat или telnet.

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru