2016-11-30 5 views
0

Dies ist meine aktuelle WORKING-nginx-Konfiguration, die das WWW für jede Anfrage eliminiert, die sie enthält. Ich möchte eine Konfiguration, die gleich funktioniert, ohne IF-Anweisung zu verwenden.Ning-Umleitung für mehrere Standorte ohne Verwendung von IF

irgendwelche Ideen?

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; 
    } 
} 

Antwort

1

Dies würde die Erstellung eines Servers {} für das www bzw. non-www beinhalten.

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

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

und Sie verwenden das Arbeiten für das Nicht-www und entfernen Sie die Wenn.

Quelle: https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#server-name-if

+0

Wie kann ich ändern: server_name ~^(. +) $; in einen reg_exp, der nur die Domains erfasst, die mit www beginnen? –

Verwandte Themen