passieren Ich brauche diese beiden Arten von umschreibt:nginx Sub-Domain und Domain-Rewrite w Proxy
subdomain.domain.com => domain.com/website/subdomain
otherdomain.com => domain.com/userdomain/otherdomain.com
Mein Problem ist, dass ich der Benutzer möchte subdomain.domain.com
sehen, und otherdomain.com
, nicht die umgeleitete Version. Mein aktueller Rewrite in nginx funktioniert, aber die URL des Benutzers zeigt das Umschreiben, und ich möchte diese für den Benutzer transparent sein, irgendwelche Ideen ?:
upstream domain_server { server localhost:8000 fail_timeout=0; }
server {
listen 80;
root /var/www/domain.com;
server_name domain.com ~^(?<subdomain>.*)\.domain\.com$ ~^(?<otherdomain>.*)$;
if ($subdomain) {
rewrite^http://domain.com/website/$subdomain break;
}
if ($otherdomain) {
rewrite^http://domain.com/userdomain/$otherdomain break;
}
location/{
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
if (!-f $request_filename) {
proxy_pass http://domain_server;
break;
}
}
}
hier etwas Interessantes gefunden: http://blog.martinfjordvald.com/2011/02/nginx-primer- 2-von-Apache-zu-Nginx /. Es sagt "Eine andere Sache über Nginx umschreibt ist, dass sie standardmäßig interne Umschreibungen sind, was bedeutet, dass sie die URI, die der Browser sieht, nicht ändern. Sie werden das nur tun, wenn Sie das Umleitungsflag oder" permanent "umschreiben wenn Sie eine absolute URL mit dem http: // Teil umschreiben. ". Versuchen, dies zu verwenden, um mit einer Lösung zu kommen ... – pyramation