環境:centos7,yum安裝的nginx1.十、php-fpm,tp3.2
本方法只須要配置nginx.conf的一個文件就能夠支持pathinfo和rewrite兩種url訪問方式php
vim /etc/nginx/nginx.conf
一、支持rewrite方式:
在 location / 處添加如下代碼html
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }
最終變成nginx
location / {
root html/code;
index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }
2.實現pathinfo模式
找到有效的 location ~ .php$那部分
首先,將這個$去掉,
而後裏面添加如下兩行代碼vim
fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info;
最終變成centos
location ~ \.php { root html/code; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
3.重啓nginx和php-fpm便可使用了ruby
service nginx restart
service php-fpm restart
本地phpstudy修改實例:
1 nginx.conf 2 3 root "D:/WWW"; 4 5 location / { 6 7 index index.html index.htm index.php l.php; 8 9 autoindex on; 10 11 #add rewrite 12 13 if (!-e $request_filename) { 14 15 rewrite ^(.*)$ /index.php?s=$1 last; 16 17 break; 18 19 } 20 21 } 22 23 24 25 location ~ \.php(.*)$ { //這邊$去掉試試 26 27 fastcgi_pass 127.0.0.1:9000; 28 29 fastcgi_index index.php; 30 31 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; 32 33 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 34 35 fastcgi_param PATH_INFO $fastcgi_path_info; 36 37 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 38 39 include fastcgi_params; 40 41 #add pathinfo 42 43 fastcgi_split_path_info ^(.+\.php)(.*)$; 44 45 fastcgi_param PATH_INFO $fastcgi_path_info; 46 47 }
參考:http://blog.csdn.net/jo_andy/article/details/52598097