解决ThinkPHP在Nginx下无法使用pathin方式的问题
程序员文章站
2022-05-20 18:49:27
[环境]
ubuntu 12.04 32bit
amh面板 4.2
nginx 1.4.4
php 5.3.27
thinkphp 3.1.2
---------------------...
[环境]
ubuntu 12.04 32bit
amh面板 4.2
nginx 1.4.4
php 5.3.27
thinkphp 3.1.2
--------------------------------- 不太华丽的分割线 ---------------------------------
其实就是直接写rewrite文件,具体的语法请百度之,我也不太懂,也是在网上半抄半改才勉强搞定的,rewrite内容在下面放出:
备注:我是直接在amh上配置nginx虚拟主机的,所以路径什么的可能会有些不同
在写rewrite之前先将原vhost下对应的网站配置中的location ~ *\.php$ {}整个注释或删除(注意备份哦!!)
location / {
index index.php;if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .*\.php
{
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_pass unix:/tmp/php-cgi-myar.kollway.com.sock;
fastcgi_index index.php;
include fcgi-host.conf;
fastcgi_param document_root /web$subdomain;
fastcgi_param script_filename /web$real_script_name;
fastcgi_param path_info $path_info;
}
--------------------------------- 不太华丽的分割线 ---------------------------------
参考文章:
https://www.codesth.com/%e4%b8%8d%e7%94%a8rewrite%e5%85%bc%e5%ae%b9%ef%bc%8c%e8%a7%a3%e5%86%b3nginx%e4%b8%8d%e6%94%af%e6%8c%81thinkphp-pathinfo%e6%a8%a1%e5%bc%8f/
https://blog.csdn.net/realghost/article/details/9082847