nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式

http://free.45fan.com/convert-apache-htaccess-to-nginx/
本方法只需要配置nginx.conf的一个文件就可以支持pathinfo和rewrite两种url访问方式
1、支持rewrite方式:location / 处添加以下代码
if (!-e $request_filename) {
rewrite ^(.)$ /index.php?s=$1 last;
break;
}
最终变成
location / {
root html/code;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.
)$ /index.php?s=$1 last;
break;
}
}

2.实现pathinfo模式 找到有效的 location ~ .php$那部分 首先,将这个$去掉, 然后里面添加以下两行代码
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

最终变成
location ~ .php {
root html/code;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

3.重启nginx和php-fpm即可使用了
service nginx restart
service php-fpm restart

你可能感兴趣的:(nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式)