您好,欢迎访问一九零五行业门户网

nginx支持thinkphp的pathinfo解决方法

nginx支持thinkphp的pathinfo
现在发现问题有两个:
1 不支持pathinfo。
         localhost/?m=login可以访问,localhost/login不能访问。
2 thinkphp的u方法生成的地址错误。
         u('login/index')生成的地址是/login-index.html。
nginx配置文件:
location ~ \.php$ {
            root           d:/appserv/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  script_filename $document_root$fastcgi_script_name;
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_name $real_script_name;
            fastcgi_param  path_info $path_info;
include        fastcgi_params;
        }
.htacess:
rewriteengine on
rewriterule ^(.*)$ index.php/$1 last
nginx错误日志:
         2014/10/27 13:54:42 [error] 5404#5668: *107 createfile() d:/appserv/www/login failed (2: the system cannot find the file specified), client: 127.0.0.1, server: localhost, request: get /login http/1.1, host: localhost
------解决思路----------------------
server {
listen 80;
server_name www.phpno.com;
root /home/www/www_phpno_com/admin_wwwroot;
access_log off;
error_page 404 /404.html;
location /404.html {
root /home/www/www_phpno_com/admin_wwwroot;
}
location /{
index index.html index.htm index.php;
if (-e $request_filename) {
break;
}
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ .+\.php($
------解决思路----------------------
/) {
root /home/www/www_phpno_com/admin_wwwroot;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param script_filename $document_root$fastcgi_script_name;
fastcgi_param path_info $fastcgi_path_info;
fastcgi_param path_translated $document_root$fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
自己对比一下
其它类似信息

推荐信息