server {
listen *:80;
server_name admin.hiphop.top;
location / {
root "D:\Office\PHPStudy\PHPTutorial\WWW\MyWork\VhiphopAdmin\dist";
index index.html;
try_files $uri $uri/ /index.html;
}
location /api {
root "D:\Office\PHPStudy\PHPTutorial\WWW\MyWork\VhiphopAdminApi\public";
index index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置代码如上
访问 admin.hiphop.top
可以匹配到 "D:OfficePHPStudyPHPTutorialWWWMyWorkVhiphopAdmindist"
访问 admin.hiphop.top/api
不能匹配到 "D:OfficePHPStudyPHPTutorialWWWMyWorkVhiphopAdminApipublic"
dist目录是我的前端静态文件, public目录是php api接口的入口目录
请问如何配置才能做到 访问 admin.hiphop.top/* 时匹配dist目录
并且访问 admin.hiphop.top/api 优先匹配php的public目录
配置2个域名是没问题的 因为浏览器有跨域问题, 所以现在想只用一个域名
访问
http://admin.hiphop.top/api/test.html
这个url
情况下,$uri
为/api/test.html
使用
root
的情况下,判断的是D:\Office\PHPStudy\PHPTutorial\WWW\MyWork\VhiphopAdminApi\public\api
目录下有没有这个文件要想访问到正确的文件,有两种方法:
root
改为alias
public
目录下增加一个api
目录, 然后配置不变附: alias和root的区别
alias
和root
的区别在于怎么理解location
后面的uri
root
是root
路径 +location
路径alias
是用alias
路径替换location
路径