Nginx leitet alle Anforderungen um, die versuchen, einen Ordner zu erreichen

1763
Orlo

Wie kann ich alle Anfragen umleiten, die versuchen, einen Ordner zu erreichen?

Zum Beispiel würde ich gerne umleiten:

somedomain.com/folder/subfolder/index.html somedomain.com/folder/subfolder2/something.html somedomain.com/folder/subfolder3/somethingelse.html 

zu

somedomain2.com/index.html 

was ich probiert habe:

if ( $request_uri = "/folder/.*" ) { rewrite ^/(.*)$ http://domain2.com/embed.html permanent; } 
0

1 Antwort auf die Frage

2
Bernard Rosset
server { server_name somedomain.com;  location /folder/ { return 301 $scheme://somedomain2.com; } }  server { server_name somedomain2.com;  location / { #index index.html; # You could wish to add that, if index default value does not suits your needs } } 

Dadurch wird eine permanente Weiterleitung für alle / folder / * -Anfragen ausgegeben.

Ich habe mir die Freiheit genommen, das mit somedomain für somedomain2 verwendete Schema mit der $schemeVariablen nachzuahmen .

Ich habe die /index.htmlURI in der Weiterleitung nicht erzwungen . Möglicherweise möchten Sie es tun. Ich habe mich auch auf den Standardwert der indexDirektive gestützt, der für Sie vielleicht nicht richtig ist.

Wenn Sie den Inhalt des anderen Servers transparent behandeln möchten, können Sie proxy_passdie Anforderung an diesen Proxy weiterleiten .