tpshop nginx 配置文件
2019年5月5日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
server { listen 80; listen 443 ssl http2; server_name .tpshop.test; root "/home/vagrant/tpShop"; index index.html index.htm index.php; charset utf-8; location ~* ^/(application|template|runtime)/.*\.(php|php5)$ { deny all; } location / { index index.htm index.html index.php; if (!-e $request_filename){ #地址作为将参数rewrite到index.php上。tp框架接收s参数为controller和action,不少框架都利用这种方式来实现伪pathinfo模式(pathinfo为php功能,nginx并不支持) rewrite ^/(.*)$ /index.php?s=$1 last; break; } } #上面的正则能解决不带xx.php的,这条正则是为了rewrite url中带index.php/admin/admin/login这种,思路是一样的,将index.php后的字符串当成参数 location ~ /.*\.php/ { rewrite ^(.*?/?)(.*\.php)(.*)$ /$2?s=$3 last; break; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log off; error_log /var/log/nginx/tpshop.test-error.log error; sendfile off; client_max_body_size 100m; #php配置 location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; } location ~ /\.ht { deny all; } #ssh配置 ssl_certificate /etc/nginx/ssl/tpshop.test.crt; ssl_certificate_key /etc/nginx/ssl/tpshop.test.key; } |