×

Nginx 给虚拟主机配置pathinfo 与 rewrite 支持

admin admin 发表于2016-03-01 20:40:55 浏览1784 评论0

抢沙发发表评论

1。首先在usr/local/nginx/conf/下创建pahtinfo.conf文件   然后在这个文件中添加以下内容
    vi /usr/local/nginx/conf/pathinfo.conf

set $real_script_name $fastcgi_script_name;  #定义变量 $path_info ,用于存放pathinfo信息
if ($fastcgi_script_name ~ "(.+?\.php)(/.*)")  #定义变量 $real_script_name,用于存放真实地址
{
    set $real_script_name $1;  #将文件地址赋值给变量 $real_script_name
    set $path_info $2;         #将文件地址后的参数赋值给变量 $path_info
}
 #配置fastcgi的一些参数
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;  
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;

  
2.    vi /usr/local/php/etc/php.ini 将cgi.fix_pathinfo=0 修改为cgi.fix_pathinfo=1  (此步不可少)

     [ 注,上两行黄色背景的,不用修改也可以。目前本人不知道是干什么用的。]     保存退出;


5。配置rewrite(thinkphp重写)    先设置URL_MODE为2(1 pathinfo ,2rewrite, 3兼容)

    然后在vhost里面对应的配置文件中的access.log上面加上以下:---->可选

location / { 
   if (!-e $request_filename) { 
       rewrite  ^(.*)$  /index.php?s=$1  last; 
       break;   
   } 
}


6。重启nginx服务,/etc/init.d/nginx restart
     即可支持;

分享到:

群贤毕至

访客