在我的配置中,我使用主机名($ host)作为目录,因此我不需要为配置中的每个域创建一个条目(仅用于开发目的)
一个问题是try_files失败了我尝试了不同的方法,但所有这些都没有成功。
try_files $ document_root \ $ host $ fastcgi_script_name = 404;
server {
listen 80;
server_name default;
charset UTF-8;
#access_log logs/host.access.log main;
# redirect server error pages to the static pages
error_page 500 502 503 504 /error/50x.html;
error_page 404 = /error/404.html;
error_page 403 = /error/403.html;
location ^~ /error/ {
internal;
root html/default;
}
location / {
root html/$host;
index index.php index.html index.htm;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
#try_files html\$host$uri =404;
#try_files $document_root\$host$uri =404;
#try_files $uri =404;
#try_files $document_root\$host$fastcgi_script_name =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root\$host$fastcgi_script_name;
include fastcgi_params;
}
答案 0 :(得分:1)
它本身的概念是正确的,但是您将它应用于错误的位置,您应该将其设置为服务器的root
,而不是try_files
另外我认为您应该使用$http_host
而不是$host
,请参阅this answer以了解差异
我不知道为什么你的路径不是绝对的,它们应该以{{1}}
开头我会在您当前发布的配置中添加更改
/