
問題を解決する方法を見つけるためにここで5時間を費やしましたが、できません。
次の dir 構造があるとします。
/var/www/key1
/var/www/key1/wwwdir
/var/www/key1/dir1
/var/www/key1/dir2
もう一つある
/var/www/key2
/var/www/key2/wwwdir
/var/www/key2/dir1
/var/www/key2/dir2
たとえば、私が入力したときに欲しいものhttp://mysite.com/key1/var/www/key1/wwwdir
入力中にファイルをインポートするhttp://mysite.com/key2次からファイルをインポートする/var/www/key2/wwwdir
私のすべてのnginx設定は次のとおりです"keys"
server {
listen 80;
include /etc/nginx/conf.d/*.conf;
location ~ /\.ht {
deny all;
}
}
key1.confは
location ~/key2 {
chunked_transfer_encoding off;
index index.php index.html index.htm;
alias /var/www/key2/wwwdir;
location ~* \.php$ {
try_files $uri = 404;
fastcgi_index index.php;
fastcgi_pass unix:/var/php-fpm/key2.sock;
include /etc/nginx/fastcgi_params;
fastcgi_keep_conn on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
これはうまくいきません。次のURLをリクエストするとhttp://mysite.com/key2わかりました。無効なゲートウェイエラーです。
/var/log/nginx/error.log
エラーがあります/var/www/key2/wwwdir/key2/index.php that file does not exists
(key2が2回存在するのに理由がわかりません)。
私が入力している間
http://mysite.com/key2
からファイルを受け取りたいです/var/www/key2/wwwdir
。
例:
http://mysite.com/key2 => /var/www/key2/wwwdir
http://mysite.com/key2/admin => /var/www/key2/wwwdir/admin
もちろん、他の仮想ホストキーと同じであることを望みます1
答え1
alias
代わりに使用する必要がありますroot
。
説明:root
後ろに uri を使用するlocation
と に追加されるためrootdir
、2 回表示されますkey2
。しかし、alias
uriを使用するとlocation
追加されません。
たとえば、
location /test {
root /wwwdir/mydir;
}
提供するexample.com/test/index.html
。/wwdir/mydir/test/index.html
location /test {
alias /wwwdir/mydir;
}
サービスexample.com/test/index.html
(一部なし)/www/mydir/index.html
。test
もっと見るここ。