nginx配置伪静态和适配客户端

liudaniel 2019-11-19

后端用的thinkphp3.2.3框架,如果您是其他的语言或者,注意适当修改下

server {
        listen       80;
        server_name  www.morgen.club;

        #charset koi8-r;
        
        #access_log  logs/host.access.log  main;

网站根目录

location / {
            root   html;
            index  index.html index.htm;
            #设置访问设备
            set $source_device 'index';
            #判断为手机客户端或ipad
            if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
                set $source_device 'phone';
            }
            #根目录
            if ($request_uri ~* ^/$){
                rewrite ^(.*)$ /index.php?s=/Home/$source_device/index.html last;
                break;
            }
            #电脑首页
            if ($request_uri ~* ^/Home/index/index.html$) {
                rewrite ^/Home/index/index.html$ /web/ permanent;
                break;
            }
            #电脑首页分页
            if ($request_uri ~* ^/Home/index/index/page/(\d*).html$) {
                rewrite ^/Home/index/index/page/(\d*).html$ /web/pages/$1/ permanent;
                break;
            }
            #电脑首页分类首页
            if ($request_uri ~* ^/Home/index/index/cate/(\d*).html$) {
                rewrite ^/Home/index/index/cate/(\d*).html$ /web/cates/$1/ permanent;
                break;
            }
            #电脑首页分类分页
            if ($request_uri ~* ^/Home/index/index/cate/(\d*)/page/(\d*).html$) {
                rewrite ^/Home/index/index/cate/(\d*)/page/(\d*).html$ /web/cates/$1/pages/$2/ permanent;
                break;
            }
            #电脑首页搜索
            if ($request_uri ~* ^/Home/index/index.html(.*)) {
                rewrite ^/Home/index/index.html(.*) /web/search?$query_string permanent;
                break;
            }
            #电脑书籍页面
            if ($request_uri ~* ^/Home/index/books/book/(\d*).html$) {
                rewrite ^/Home/index/books/book/(\d*).html$ /web/books/$1/ permanent;
                break;
            }
            #电脑章节页面
            if ($request_uri ~* ^/Home/index/contents/books/(\d*)/chapters/(\d*).html$) {
                rewrite ^/Home/index/contents/books/(\d*)/chapters/(\d*).html$ /web/books/$1/chapters/$2/ permanent;
                break;
            }
            #手机首页
            if ($request_uri ~* ^/Home/phone/index.html$) {
                rewrite ^/Home/phone/index.html$ /phone/ last;
                break;
            }
            #手机首页分页
            if ($request_uri ~* ^/Home/phone/index/page/(\d*)(.*)$) {
                rewrite ^/Home/phone/index/page/(\d*).html /phone/pages/$1/ permanent;
                break;
            }
            #手机首页分类首页
            if ($request_uri ~* ^/Home/phone/index/cate/(\d*).html$) {
                rewrite ^/Home/phone/index/cate/(\d*).html$ /phone/cates/$1/ permanent;
                break;
            }
            #手机首页分类分页
            if ($request_uri ~* ^/Home/phone/index/cate/(\d*)/page/(\d*).html$) {
                rewrite ^/Home/phone/index/cate/(\d*)/page/(\d*).html$ /phone/cates/$1/pages/$2/ permanent;
                break;
            }
            #手机首页搜索
            if ($request_uri ~* ^/Home/phone/index.html?(.*)) {
                rewrite ^/Home/phone/index.html(.*) /phone/index.html$1 permanent;
                break;
            }
            #手机书籍页面
            if ($request_uri ~* ^/home/phone/books/book/(\d*).html$) {
                rewrite ^/home/phone/books/book/(\d*).html$ /phone/books/$1/ permanent;
                break;
            }
            #手机章节页面
            if ($request_uri ~* ^/home/phone/contents/books/(\d*)/chapters/(\d*).html$) {
                rewrite ^/home/phone/contents/books/(\d*)/chapters/(\d*).html$ /phone/books/$1/chapters/$2/ permanent;
                break;
            }
            
            if ($request_uri ~* ^/Home/book/(.*)$) {
                rewrite ^(.*)$ /index.php?s=$1 last;
                break;
            }

            if (!-e $request_filename) {
                return 404;
            }
        }

电脑浏览器端

location /web {
            root html;
            index index.html index.htm;
            #如果设备为手机或ipad
            if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
                rewrite ^/web(.*) /phone$1 permanent;
            }
                #电脑首页搜索
                if ($request_uri ~ ^/web/search(.*)$) {
                    rewrite ^(.*) /index.php?s=/Home/index/index.html last;
                    break;
                }
                #电脑首页
                set $index false;
                if ($request_uri ~* ^/web$) {
                    set $index true;
                }
                if ($request_uri ~* ^/web/$) {
                    set $index true;
                }
                if ($index = true){
                    rewrite ^/web(.*) /index.php?s=/Home/index/index.html last;
                    break;
                }
                #电脑首页分页
                set $index_page false;
                if ($request_uri ~* ^/web/pages/(\d*)$) {
                    set $index_page true;
                }
                if ($request_uri ~* ^/web/pages/(\d*)/$) {
                    set $index_page true;
                }
                if ($index_page = true){
                    rewrite ^/web/pages/(\d*)(.*) /index.php?s=/Home/index/index/page/$1.html last;
                    break;
                }
                #电脑分类首页
                set $cate false;
                if ($request_uri ~* ^/web/cates/(\d*)$) {
                    set $cate true;
                }
                if ($request_uri ~* ^/web/cates/(\d*)/$) {
                    set $cate true;
                }
                if ($cate = true){
                    rewrite ^/web/cates/(\d*)(.*) /index.php?s=/Home/index/index/cate/$1.html last;
                    break;
                }
                #电脑分类分页
                set $cate_page false;
                if ($request_uri ~* ^/web/cates/(\d*)/pages/(\d*)$) {
                    set $cate_page true;
                }
                if ($request_uri ~* ^/web/cates/(\d*)/pages/(\d*)/$) {
                    set $cate_page true;
                }
                if ($cate_page = true){
                    rewrite ^/web/cates/(\d*)/pages/(\d*)(.*) /index.php?s=/Home/index/index/cate/$1/page/$2.html last;
                    break;
                }
                
                #电脑书籍页面
                set $book false;
                if ($request_uri ~* ^/web/books/(\d*)$) {
                    set $book true;
                }
                if ($request_uri ~* ^/web/books/(\d*)/$) {
                    set $book true;
                }
                if ($book = true){
                    rewrite ^/web/books/(\d*)(.*) /index.php?s=/Home/index/books/book/$1.html last;
                    break;
                }
                #电脑章节页面
                set $chapter false;
                if ($request_uri ~* ^/web/books/(\d*)/chapters/(.*)$) {
                    set $chapter true;
                }
                if ($request_uri ~* ^/web/books/(\d*)/chapters/(.*)/$) {
                    set $chapter true;
                }
                if ($chapter = true){
                    rewrite ^/web/books/(\d*)/chapters/(.*)/ /index.php?s=/Home/index/contents/books/$1/chapters/$2.html last;
                    break;
                }

                if (!-e $request_filename) {
                    return 404;
                }
        }

手机和平板端

location /phone {
            root html;
            index index.html index.htm;
            #如果设备不是手机或ipad
            if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
                rewrite ^/phone(.*) /web$1 permanent;
            }
                #电脑首页搜索
                if ($request_uri ~ ^/phone/search(.*)$) {
                    rewrite ^(.*) /index.php?s=/Home/phone/index.html last;
                    break;
                }
                #手机首页
                set $index false;
                if ($request_uri ~* ^/phone$) {
                    set $index true;
                }
                if ($request_uri ~* ^/phone/$) {
                    set $index true;
                }
                if ($index = true){
                    rewrite ^/phone(.*) /index.php?s=/Home/phone/index.html last;
                    break;
                }
                #手机首页分页
                set $index_page false;
                if ($request_uri ~* ^/phone/pages/(\d*)$) {
                    set $index_page true;
                }
                if ($request_uri ~* ^/phone/pages/(\d*)/$) {
                    set $index_page true;
                }
                if ($index_page = true){
                    rewrite ^/phone/pages/(\d*)(.*) /index.php?s=/Home/phone/index/page/$1.html last;
                    break;
                }
                #手机分类首页
                set $cate false;
                if ($request_uri ~* ^/phone/cates/(\d*)$) {
                    set $cate true;
                }
                if ($request_uri ~* ^/phone/cates/(\d*)/$) {
                    set $cate true;
                }
                if ($cate = true){
                    rewrite ^/phone/cates/(\d*) /index.php?s=/Home/phone/index/cate/$1.html last;
                    break;
                }
                #手机分类分页
                set $cate_page false;
                if ($request_uri ~* ^/phone/cates/(\d*)/pages/(\d*)$) {
                    set $cate_page true;
                }
                if ($request_uri ~* ^/phone/cates/(\d*)/pages/(\d*)/$) {
                    set $cate_page true;
                }
                if ($cate_page = true){
                    rewrite ^/phone/cates/(\d*)/pages/(\d*)(.*) /index.php?s=/Home/phone/index/cate/$1/page/$2.html last;
                    break;
                }
                #手机书籍页面
                set $book false;
                if ($request_uri ~* ^/phone/books/(\d*)$) {
                    set $book true;
                }
                if ($request_uri ~* ^/phone/books/(\d*)/$) {
                    set $book true;
                }
                if ($book = true){
                    rewrite ^/phone/books/(\d*)(.*) /index.php?s=/Home/phone/books/book/$1.html last;
                    break;
                }
                #手机书籍分页页面
                set $book false;
                if ($request_uri ~* ^/phone/books/(\d*)/pages/(\d*)$) {
                    set $book true;
                }
                if ($request_uri ~* ^/phone/books/(\d*)/pages/(\d*)/$) {
                    set $book true;
                }
                if ($book = true){
                    rewrite ^/phone/books/(\d*)/pages/(\d*) /index.php?s=/Home/phone/books/book/$1/page/$2.html last;
                    break;
                }
                #手机章节页面
                set $chapter false;
                if ($request_uri ~* ^/phone/books/(\d*)/chapters/(.*)$) {
                    set $chapter true;
                }
                if ($request_uri ~* ^/phone/books/(\d*)/chapters/(.*)/$) {
                    set $chapter true;
                }
                if ($chapter = true){
                    rewrite ^/phone/books/(\d*)/chapters/(.*)/ /index.php?s=/Home/phone/contents/books/$1/chapters/$2.html last;
                    break;
                }

                if (!-e $request_filename) {
                    return 404;
                }
        }
        location ~ .xml(.*) {
            root html/ttt/;
        }
 
        location ~ .txt(.*) {
            root html/ttt/;
        }
        location ~ .gif(.*) {
            root html/ttt/;
        }
        location ~ .jpg(.*) {
            root html/ttt/;
        }
        location ~ .css(.*) {
            root html/ttt/;
        }
        location ~ .js$ {
            root html/ttt/;
        }
        location ~ .php$ {
            root html/ttt;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_buffers 8 256k;
            fastcgi_connect_timeout 300s;
            fastcgi_send_timeout 300s;
            fastcgi_read_timeout 300s;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }

相关推荐