これはSO beforeで尋ねられましたが、回答は一般化されていません。だからここに行く。スクリプトに渡す前にURLからサブディレクトリを削除するにはどうすればよいですか?
私は2つの異なるWebアプリケーションを持っています。彼らはルート上の別のサーバー上に作成されました。しかし今、彼らは同じサーバー上のサブディレクトリに配置されます。以下のスクリプトはURIと共にサブディレクトリをスクリプトに送ります。これは問題だ。
歳のURL:
新しいURL:
/items/1
をご覧になりたいときは店舗サイト/store/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
接頭辞でURLを取得しているとバックオフィスは/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