修改Nginx解決ThinkPHP不支持PathInfo模式


 

最精簡的Nginx配置

 

server {
        listen       80;
        server_name  test.com;
        charset utf-8;

        location / {
            root   E:/WWW/test;
            index  index.php;
            
            if (!-e $request_filename) {
                #一定要用(.*)匹配整個URI,包含URI第一個字符反斜杠/
                #rewrite ^(.*)$ /index.php?s=$1 last;
                rewrite  ^/(.*)index.php(.*)$  $1/index.php?s=$2  last; 
                break;
            }
        }

        location ~ \.php$ {
            root           E:/WWW/test;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
    }

關鍵就是,高級版的:

rewrite  ^/(.*)index.php(.*)$  $1/index.php?s=$2  last; 

1、精簡版的:PathInfo模式http://test.com/index.php/home/wendang/index,會報錯無法找到模板index.php,其他正常

2、高級版的:貌似這種,兼容模式http://test.com/home/wendang/index,會出現Not Found,其他正常

 

參考:nginx解決ThinkPHP PATHINFO不支持問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM