资讯专栏INFORMATION COLUMN

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

2shou / 1871人阅读

摘要:后端用的框架,如果您是其他的语言或者,注意适当修改下网站根目录设置访问设备判断为手机客户端或根目录电脑首页电脑首页分页电脑首页分类首页电脑首页分类分页电脑首页搜索电脑书籍页面电脑章节页面手机首页手机首页分页手机首页分类首页手机首页分类分页

后端用的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;
        }
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40418.html

相关文章

  • nginx网站性能优化篇(2)】反向代理实现Apache与Nginx的动静分离(LNMPA)

    摘要:单独使用处理大量动态页面时容易产生频繁的错误。采用能够更好的解决架构中由于方面产生的错误,同时能够以很简单的方式提供更安全的多用户多站点环境。这个值可以是一个文本,变量或者它们的组合。在指定的字段中没有定义时会从它的上级字段继承。 为什么要使用反向代理 具体请参考这篇博文: 【Linux常识篇(1)】所谓的正向代理与反向代理 LNMPA 通过Nginx强大的反向代理功能,把动态文件给A...

    liukai90 评论0 收藏0
  • 切图仔的 Nginx 小书?

    摘要:切图仔的小书本文陆续介绍的功能配置及一些实用场景待完善。更可贵的是配置简单文档丰富大大降低了学习的门槛。为什么选择自年发布以来,一直是服务器市场的霸主。虽然发布较晚,但是却因为在高并发下卓越的表现而迅速崭露头角。 切图仔的 Nginx 小书 本文陆续介绍 Nginx 的功能、配置、及一些实用场景(待完善...)。 一、介绍 Nginx 1. Nginx 是什么? Nginx,很多工程师...

    pubdreamcc 评论0 收藏0
  • 切图仔的 Nginx 小书?

    摘要:切图仔的小书本文陆续介绍的功能配置及一些实用场景待完善。更可贵的是配置简单文档丰富大大降低了学习的门槛。为什么选择自年发布以来,一直是服务器市场的霸主。虽然发布较晚,但是却因为在高并发下卓越的表现而迅速崭露头角。 切图仔的 Nginx 小书 本文陆续介绍 Nginx 的功能、配置、及一些实用场景(待完善...)。 一、介绍 Nginx 1. Nginx 是什么? Nginx,很多工程师...

    mrli2016 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<