這已經被問過SO before但答案還沒有被推廣。所以在這裏。傳遞到腳本前如何刪除網址的子目錄?
我有兩個不同的網絡應用程序。他們被製作在不同的服務器上。但現在,他們都將被放置到子目錄在同一臺服務器上。下面的腳本發送帶有URI對腳本一起子目錄。這是個問題。
舊網址:
新網址:
該商店網站看到/store/items/1
時,它只想看到/items/1
。後臺網站也是如此。
我嘗試:
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;
}
再次,商店網站越來越網址與/store
前綴和後臺越來越/backoffice
。這些網站被編碼爲不期望這些前綴。我需要發送到現場前,除去/store
和/backoffice
前綴。
這是一個重寫規則的事情嗎?
我試過此基礎上this SO page並沒有奏效。我不能理解語法的一些東西。
location /store {
rewrite ^/store/(.*) /$1;
try_files $uri @store_site;
}
更新
顯然,這個工作(加入break;
)這是一個完整的解決方案?
location /store {
rewrite ^/store/(.*) /$1 break;
try_files $uri @store_site;
}
更多或更少的完整的解決方案。取決於你的網站的細節。 – Dayo