最近在使用Nginx 服务器运行tp5 产品时需要用到,隐藏入口文件。因为以前使用Apache比较多,所以记录一下解决方法。
server {
listen 80;
server_name api.com api.cn;
root "E:\phpstudy\PHPTutorial\WWW\WechatApi.com\public";
location / {
index index.html index.htm index.php;
#autoindex on;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
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;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
真正起作用的是这一段配置:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
但是注意要放在 location / { } 中。
更多内容请参考 thinkphp5 的 nginx 配置文件