
http://api.example.org/xyz
nginx でリクエストを書き換えて、実際に舞台裏で呼び出すようにしたいですexample.org/api/xyz
。また、難しいのは、CodeIgniter を使用しているため、/xyz/index.php に PHP スクリプトをロードするのではなく、XYZ コントローラーで CodeIgniter の /index.php を参照する必要があることです。現在は次のように設定しています。
if ($host = "api.example.org") {
rewrite ^(.*)$ http://example.org/api$1 permanent;
}
...しかし、これによりブラウザで顕著なリダイレクトが発生します。書き換えがシームレスに、またはバックグラウンドで行われるようにしたいので、次のことを試しました。
if ($host = "api.example.org") {
rewrite ^(.*)$ /api$1 last;
}
しかし、それでは「入力ファイルが指定されていません」というエラーが発生します。:( 以前に、nginx 上の codeigniter コントローラーにサブドメインを書き換えようとした人はいますか?
ありがとう!
答え1
私は一日中これを理解しようとしましたが、結局は実に単純なことでした。私が最終的にやったことは次のとおりです。
location ~* \.php$ {
...
if ($host ~ ^api\.) {
set $api "/api";
}
fastcgi_param REQUEST_URI $api$request_uri;
...
}
うわー!これについて何か問題があると思われる方は、ぜひ教えてください!でも、動作しているようです。