2016-07-03 24 views
0

Ich möchte, dies umgehen:machen ein Unterverzeichnis, den Inhalt einer Sub-Domain in nginx zeigt

blog.example.com => example.com/blog

blog.example.com/xxx => example.com/blog/xxx

in beiden Proben nichts mehr im Blog Unterverzeichnis ist, und den Code, der sollte umgehen Der Blog ist in Subdomain. und ich möchte nur die URL wie oben gezeigt zeigen.

so. Ich möchte ein Unterverzeichnis an Subdomain weiterleiten (umleiten, ohne die URL zu ändern).

Gibt es dafür irgendeine nginx-Konfiguration?

+0

hat keine Antwort Ihre Frage zu lösen? Wenn ja, bitte akzeptieren && upvote, wenn nein, bitte klären was fehlt. – cnst

Antwort

0

Sie könnten Folgendes in Ihrer NGINX-Konfiguration haben.

server { 
    listen 80; 
    server_name blog.example.com; 

    location/{ 
     return 301 $scheme://example.com/blog$request_uri; 
    } 
} 

server { 
    listen 80; 
    server_name example.com; 

    location /blog/ { 
     <your code goes here> 
    } 
} 

Dies nimmt alle eingehenden Anfragen an blog.example.com und Umleitungen an example.com/blog zusammen mit dem angeforderten URI zB. blog.example.com/latest würde example.com/blog/latest

+0

Vielen vielen Dank für Ihre Antwort. Ich werde es versuchen. und wie steht es mit 'beispiel.com' oder' beispiel.com/xxx'? Diese Routen funktionieren wie bisher? – parisssss

+0

Ja, sie werden gut funktionieren. Das einzige Problem ist, dass die URL auf der Client-Seite –

0
location = /blog { 
    return 302 /blog/; 
} 
location /blog/ { 
    proxy_pass http://blog.example.com/; 
} 

Hinweis umleiten, dass die / in proxy_pass sehr wichtig ist (ohne dass es der /blog Teil wird in der Anfrage an vor- nicht werden gezupft).

Einige weitere Details zur Begründung von zwei unabhängigen location Anweisungen sind verfügbar unter https://serverfault.com/questions/562756/how-to-remove-the-path-with-an-nginx-proxy-pass/562850#562850.

+0

@parisssss ändert, hat diese Antwort Ihre Frage gelöst? Wenn ja, bitte akzeptieren && upvote, wenn nein, bitte klären was fehlt. – cnst