影者东升 发表于 2021-8-11 12:23:09

nginx配置伪静态和适配客户端的方法步骤

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


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

    #charset koi8-r;
   
    #access_log logs/host.access.log main;
网站根目录


location / {
roothtml;
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://segmentfault.com/a/1190000019217031

文档来源:服务器之家http://www.zzvips.com/article/46517.html
页: [1]
查看完整版本: nginx配置伪静态和适配客户端的方法步骤