2015-07-21 11 views
6

im Moment habe ich in einer Website bin mit nginx/1.6.3 auf centOS7Nginx SSL/Sub-Domain/IP umleiten

alles glatt läuft, mit Ausnahme einiger Umleitungen. Diese

ist, was meine Conf-Datei wie folgt aussieht:

server { 
    listen 443 ssl spdy default deferred; 
    server_name .example.com; 

    ... more configs 

    } 


server { 
    listen 80; 
    server_name .example.com; 
    return 301 https://example.com$request_uri; 
} 

Was ich folgende Szenarien erreichen möchten, sind:

user visits in browser    | this should happen 
------------------------------------|------------------------------------- 
https://example.com$request_uri  | Just deliver content 
https://*.example.com$request_uri | 301 https://example.com$request_uri 
https://123.123.123.123$request_uri | 301 https://example.com$request_uri 
http://example.com$request_uri  | 301 https://example.com$request_uri 
http://*.example.com$request_uri | 301 https://example.com$request_uri 
http://123.123.123.123$request_uri | 301 https://example.com$request_uri 

Antwort

1

Bitte überprüfen Sie mit folgenden Config ausgeführt wird, dies sollte funktionieren.

#This would serve all your content. 
server { 
    listen 443 ssl spdy default deferred; 
    server_name example.com; 

    ... more configs 

} 

#https calls to anything except example.com would be redirected here  
server { 
    listen 443 ssl spdy default deferred; #(Can also use only : "listen 443;") 
    server_name *.example.com 123.123.123.123; 
    return 301 https://example.com$request_uri; 
} 

#All port 80 redirection to https://example.com 
server { 
    listen 80; 
    server_name example.com *.example.com 123.123.123.123; 
    return 301 https://example.com$request_uri; 
} 
0

benutzte ich dieses Muster ein ähnliches Problem zu lösen:

server_name ~^(?<subdomains>.+\.)?(?<domain>[^.]+\.[^.]+)$; 
if ($domain != 'example.com') { 
     rewrite ^/(.*)$ http://${subdomains}example.com/$1 permanent; 
} 

Und so weiter