So entfernen Sie ein Unterverzeichnis aus der url, die vor der übergabe an ein Skript?
Dieser aufgefordert wurde, auf SO vor aber die Antworten haben nicht verallgemeinert worden. So, hier geht.
Habe ich zwei verschiedene web-apps. Sie wurden gemacht, um auf verschiedenen Servern an der Wurzel. Aber jetzt Sie gehen, um platziert werden, in Unterverzeichnissen auf dem gleichen server. Das Skript unten ist senden Sie das Unterverzeichnis zusammen mit den URI ' s zu den Skripten. Das ist ein problem.
alten urls:
neue urls:
Den store-Website zu sehen ist /store/items/1
wenn es will, nur um zu sehen /items/1
. Das gleiche gilt für die backoffice-Website.
Mein Versuch:
location /store {
try_files @store_site;
}
location /backoffice {
try_files @backoffice_site;
}
location @store_site {
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/store_site.sock;
proxy_set_header Host $host;
}
location @backoffice_site {
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/backoffice_site.sock;
proxy_set_header Host $host;
}
Wieder, die Shop-Website ist immer URLs mit der /store
Präfix-und backoffice ist immer /backoffice
. Diese Seiten wurden so codiert, dass Sie nicht erwarten, dass diese Präfixe. Ich muss entfernen Sie die /store
und /backoffice
Präfix vor dem senden der eigentlichen Website.
Ist dies eine rewrite-Regel, was?
Habe ich versucht, dieses basiert auf dieses ALSO Seite und es hat nicht funktioniert. Ich muss nicht verstehen, etwas über die syntax.
location /store {
rewrite ^/store/(.*) /$1;
try_files $uri @store_site;
}
Update
Anscheinend funktioniert dies (Hinzugefügt break;
) Ist dies eine komplette Lösung?
location /store {
rewrite ^/store/(.*) /$1 break;
try_files $uri @store_site;
}
- Mehr oder weniger eine komplette Lösung. Hängt von details Ihrer Website.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie umschreiben der uri, ohne dass eine Umleitung wie erwähnt durch die Verwendung
break
.Je nach den details Ihrer Einrichtung, ob alles gut gehen sollte, um das backend oder ob Nginx sollte dazu dienen, einige Anforderungen wie z.B. statische Dateien, benötigen Sie entweder ...
... oder
Schlage ich vor, Sie versuchen, diese für ein Element:
Habe es noch nicht getestet, aber ich denke, es sollte funktionieren.