我一直在尝试使用nginx位置块来解决根目录中的站点文件夹,但这不起作用。我想知道我对位置寻址的理解是否有问题。
我在nginx / sites-enabled / default中有以下内容:
index index.php index.html index.htm;
server {
listen 80;
server_name allsites;
root /allsites;
try_files $uri $uri/ /index.php$is_args$args;
location ~ /site1 {
root /allsites/site1/public;
try_files $uri $uri/ /index.php$is_args$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
location ~ /site2 {
root /allsites/site2/public;
try_files $uri $uri/ /index.php$is_args$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
我收到了/allsite
的回复(index.html),但使用localhost:8080/site1
或同一site2
,我得到了404 error
。我想我要做的是使用location ~ /site
作为根的别名(我尝试了别名而不是root,但是没有用)。
我是否从根本上错过了解位置块的工作原理?或者这是一个配置错误(在这种情况下有任何建议?)。