不使用IF的多个站点的Nging重定向

时间:2016-11-30 18:26:52

标签: nginx sysadmin

这是我当前的WORKING nginx配置,它为包含它们的每个请求消除了WWW。我想要一个不使用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 个答案:

答案 0 :(得分: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