ThinkPHP最完美的Nginx重写及pathinfo规则

ijry 发布于 2016/09/20 15:57
阅读 1K+
收藏 4
有很多别的写的规则,但是都不支持自目录重写。

本重写规则巧妙利用了try_file和if来支持子目录部署项目时的URL重写支持。
  1. server {
  2.     listen   80;
  3.     listen   [::]:80 default ipv6only=on;
  4.     root /usr/share/nginx/www;
  5.     index index.php index.html index.htm;
  6.     server_name localhost;
  7.     location / {
  8.         # URL重写支持
  9.         try_files $uri $uri/ /index.php?s=$uri&$args;
  10.         # URL重写支持子目录部署支持
  11.         if (!-e $request_filename) {
  12.             rewrite ^(/.+?/)(.*)$  $1index.php?s=/$2 last;
  13.             break;
  14.         }
  15.     }
  16.     # pathinfo支持配置
  17.     #
  18.     location ~ \.php {
  19.         fastcgi_split_path_info ^(.+\.php)(.*)$;
  20.         fastcgi_pass unix:/var/run/php5-fpm.sock;
  21.         fastcgi_index index.php;
  22.         fastcgi_param PATH_INFO $fastcgi_path_info;
  23.         include fastcgi_params;
  24.     }
  25.     error_page 404 /404.html;
  26.     # redirect server error pages to the static page /50x.html
  27.     #
  28.     error_page 500 502 503 504 /50x.html;
  29.     location = /50x.html {
  30.         root /usr/share/nginx/www;
  31.     }
  32.     # deny access to .htaccess files, if Apache's document root
  33.     # concurs with nginx's one
  34.     #
  35.     location ~ /\.ht {
  36.         deny all;
  37.     }
  38.  }

如果不会配置可以加群咨询 105108204

加载中
返回顶部
顶部