私はいくつかのPHPサブドメインを設定しています。私はアプリケーションの別の部分に各サブドメインを送信しようとしています。私は私の/etc/hosts
にこれらのサブドメインのための正しいマッピングを持っている、と私はnginxのエラーログにこのエラーが表示さnginxのサブドメインのマッピングが機能していません
map $http_host $app {
'api.id.dev' 'api/public';
'www.id.dev' 'www/public';
}
server {
set $base /Users/dev/www/id/apps;
server_name ~^(?<subdomain>.+)\.id\.dev$;
index index.html index.htm index.php;
root $base/$app;
charset utf-8;
location/{
try_files $uri $uri/ /index.php?$query_string;
}
access_log off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param APP_ENV local;
}
}
server {
server_name id.dev;
rewrite^http://www.id.dev$request_uri permanent;
}
:
ここで(それがsites-enabled
ディレクトリにあります)のように
id.conf
に見えると呼ばれるものを私のファイル、です
2016/04/24 00:26:32 [error] 5691#0: *5 directory index of "/Users/dev/www/id/apps//" is forbidden, client: 127.0.0.1, server: ~^(?<subdomain>.+)\.id\.dev$, request: "GET/HTTP/1.1", host: "api.id.dev"
これは、ホストが存在し、confファイルを読み取っていることを示していますが、httpホストと正しいディレクトリが一致していないようです。 (また、これらのサブドメインのディレクトリにindex.php
ファイルがあります)
ここで問題は何ですか?私は同じことをやっている別の設定ファイルを持っており、それは動作しています。実際に、私は別のタブをロードし、それらの他のサイトをロードし、それがこのプロジェクトのために動作していないようです(と私は、ファイル・パスにすでに回のトンを確認した)ことができます
サブドメインが存在しないベースケースがありますか?例えば「http:// id.dev」が要求される。 –
@BurhanKhalidこれは最後に書き直しで処理する必要があります。私はちょうどそれをテストし、適切にリダイレクトしますが、それでも正しくマップされないので、無効なディレクトリにアクセスしようとします。= / – charmeleon