Nginx开启伪静态与Pathinfo
打算练练手,CentOS8.2下使用 yum 安装的 nginx1.16 和 php7.4,没装MySQL,用的阿里云的单机数据库。
安装过程总的来说还算顺利,就是不懂nginx的规则,在pathinfo卡了好一会。
在站点配置文件加入以下代码
# Typecho伪静态代码,其他程序替换为对应规则即可
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
break;
}
# 开启Pathinf,我单独创建了个文件,然后使用站点配置文件引入的,如果是单站点也可以直接写到文件里
location ~ .*.php(/.*)*$
{
# Nginx默认是使用Unix Socket与php-fpm通信,我改成了通过TCP Socket.
# 这里需要改成自己的,通信方式可以在/etc/php-fpm.d/www.conf中查看/修改listen的值
# fastcgi_pass unix:/run/php-fpm/www.sock; # 若为Unix Socket这里需要改为listen的值
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}