2016-11-30 8 views
0

Это моя текущая конфигурация nginx WORKING, которая устраняет WWW для каждого содержащего их запроса. Я хотел бы, чтобы конфигурация работала одинаково без использования оператора IF.Перенаправление Nging для нескольких сайтов без использования IF

любые идеи?

server { 
    listen 888.888.888.456:80; 
    charset utf-8; 
    root "/home/app/root/"; 
    server_name ~^(.+)$; 
    if ($http_host ~ "www.(.*)") { 
    return 301 $scheme://$1$request_uri; 
    } 
    index index.php; 

    location/{ 
     try_files $uri $uri/ /index.php$is_args$args; 
    } 

    location ~ \.php$ { 
     include  fastcgi_params; 
     fastcgi_pass unix:/tmp/php-fpm.sock; 
     fastcgi_param APPLICATION_ENV production; 
    } 
} 

ответ

1

Это будет связано с созданием сервера {} для www и не-www соответственно.

sudo vi /etc/nginx/conf.d/redirect.conf 

server { 
    server_name www.example.com; 
    return 301 $scheme://example.com$request_uri; 
} 

и вы используете работу для не-www и удаляете if.

Источник: https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#server-name-if

+0

Как изменить: server_name ~^(. +) $; в reg_exp, который будет захватывать только домены, начинающиеся с www? –