小编典典
要访问类似/var/www/mysite/manage/publicURI之类的路径/manage,您将需要使用alias而不是root。有关详细信息,请参见此文档。
我假设您需要从两个根目录运行PHP,在这种情况下,您将需要两个location ~ \.php块,请参见下面的示例。如果其中没有PHP
/var/www/mysite/static,则可以删除未使用的location块。
例如:
server {
listen 80;
server_name example.org;
error_log /usr/local/etc/nginx/logs/mysite/error.log;
access_log /usr/local/etc/nginx/logs/mysite/access.log;
root /var/www/mysite/static;
index index.html;
location / {
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
location ^~ /manage {
alias /var/www/mysite/manage/public;
index index.php;
if (!-e $request_filename) { rewrite ^ /manage/index.php last; }
location ~ \.php$ {
if (!-f $request_filename) { return 404; }
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
}
该^~修饰符使前缀的位置优先于在同级别的正则表达式的位置。有关详细信息,请参见此文档。
由于这个长期存在的错误,aliasand
try_files指令不能一起使用。
在使用指令时要注意这一点if。
2020-05-26