今天接到一个需求,在同一个域名下,访问不同目录,达到访问不同php代码。我首先想到的是使用 nginx的 alias 来算是目录问题,配置后,发现 php-fpm 无法正确的访问 php 代码,于是单独给 location 配置了 php 解析器,具体配置如何:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
location /dir-02/ {
alias /data/www/dir-02/;
index index.php;
# ThinkPHP 伪静态
if (!-e $request_filename) {
rewrite ^(.*)$ /dir-02/index.php?s=/$1 last;
break;
}
location ~ \.php$ {
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include fastcgi_params;
# 这是放在 server 里面的 php 配置
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 注意需要将上面的$document_root$fastcgi_script_name 修改为 $request_filename
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass php_backend;
}
}
|