ngnix+php+tp6

44 阅读1分钟

如何配置 全部是

server {
    listen 80;
    server_name localhost;

    # location / {
    #     root   /usr/share/nginx/html;
    #     index  index.html index.htm index.php;
    # }

    # location ~ \.php$ {
    #     # 注意 这里是 php 的挂载目录哦
    #     fastcgi_pass   myphp:9000;
    #     fastcgi_index  index.php;
    #     fastcgi_param SCRIPT_FILENAME   /var/www/html$fastcgi_script_name;
    #     fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
    #     include        fastcgi_params;
    # }


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

    location ~ [^/]\.php(/|) {
        # 注意 这里是 php 的挂载目录哦
        fastcgi_pass myphp:9000;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        include fastcgi_params;
    }
}

第一个事情就是 .php都 默认去访问文件/var/www/html/public下的文件 去这里找

 location ~ [^/]\.php(/|) {
        # 注意 这里是 php 的挂载目录哦
        fastcgi_pass myphp:9000;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        include fastcgi_params;
    }

第二个事情是 全部的url都给我转到 /index.php上去 ,比如/user/get 全都转发到index.php

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