评论

收藏

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

web服务器 web服务器 发布于:2021-08-11 12:23 | 阅读数:275 | 评论:0

后端用的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://segmentfault.com/a/1190000019217031

关注下面的标签,发现更多相似文章