我在服务器块中使用 Laravel,我想创建一个别名,例如 /webmail。这会导致 nginx " Primary script unknown
" 错误。我想我需要改变我的fastcgi_param
. 谁能帮我?
下面是关于我的 Nginx 服务器块的重要部分。
server {
listen 80 default_server;
server_name _;
set $root_path '/var/www/html/public';
root $root_path;
index index.php index.html index.htm;
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index /index.php;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /webmail {
root /var/www/;
}
}
所以我的网络邮件应用程序位于/var/www/webmail
.
当我更改SCRIPT_FILENAME
为:
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
但是,在此更改后,根域不再起作用。我无法将上面的行放在位置部分。
试试这个配置:
因此,我们根据位置将不同的文档根/脚本文件名前缀传递给 PHP。
$root_path
在我们设置为的默认位置/var/www/html/public
上,/webmail
我们将其设置为/var/www
.您可能需要在该位置添加一个单独的
rewrite
/try_files
部分/webmail
,以便index.php
尝试使用该脚本或任何其他默认 webmail 条目脚本。为此,您需要查看您的网络邮件文档。