在nginx中配置pathinfo模式支持thinkphp的URL重写
2014-04-18 10:56
941 查看
最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:
修改nginx.conf,找到server中的 location ~ .php${},修改为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_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
不过无论我们如何测试,都发现PATHINFO模式总是不能正确运行,就算运行后,{:U}方法也总是出错,打印$_SERVER后发现PHP_SELF总是不对。
但是依然PATHINFO不能正确正常工作,于是我们确定是ThinkPHP的配置问题,发现其实是ThinkPHP的_PHP_FILE的问题,在入口文件index.php中加入配置define('_PHP_FILE_',$_SERVER['SCRIPT_NAME']);,问题解决。
如果$_SERVER['SCRIPT_NAME'] 路径也不对,请先替换为正确的文件路径。
您可能感兴趣的文章:
相关文章推荐
- Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持
- 配置nginx1.8支持thinkPHP3.2 pathinfo模式
- LNMP 配置NGINX 支持THINKPHP PATHINFO模式
- LNMP 配置NGINX 支持THINKPHP PATHINFO模式
- nginx配置使其支持thinkphp的pathinfo模式
- Nginx下使Thinkphp URL模式支持PATHINFO和REWRITE
- LNMP 配置NGINX 支持THINKPHP PATHINFO模式
- Nginx下使Thinkphp URL模式支持PATHINFO和REWRITE
- nginx 配置https(可支持thinkphp的pathinfo模式)
- windows下配置nginx pathinfo模式,支持thinkphp
- Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持
- nginx配置支持pathinfo模式的url访问(原创)
- 【Nginx重写】下支持ThinkPHP的Pathinfo和URl Rewrite模式
- Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式
- nginx配置 支持thinkphp 的URL_MODEL=1模式
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- [省了index.php看这] Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式
- 详解ThinkPHP支持的URL模式有四种普通模式、PATHINFO、REWRITE和兼容模式
- ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写
- Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式