2016-11-30 4 views
0

これは、現在のWORKING nginx設定で、WWWが含まれているすべてのリクエストに対してWWWを排除します。 IF文を使用せずに同じように動作する設定が欲しいです。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とnon-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〜^(。+)$; wwwから始まるドメインのみを取得するreg_expに入れますか? –

関連する問題