1. 程式人生 > >nginx完美支持TP5的pathinfo路由模式

nginx完美支持TP5的pathinfo路由模式

roo page pat acc 5.4 net nginx location sta

寶塔面板windows-5.4.0+Nginx-1.12配置(Linux請使用寶塔面板,可以直接打開配置文件,然後根據這個修改,一樣的)

請完全按此順序執行,不然我也不清楚有沒有其他問題

1、通過寶塔線安裝好Nginx與其它環境

2、通過寶塔面板 添加 網站 (這一步很重要,寶塔會自動配置一些文件,可以省去很多事情)

3、打開寶塔目錄應該是(我的寶塔是裝個在D盤,路徑如下D:\BtSoft\WebSoft\nginx\conf\vhost) 註意紅色部分,是conf\vhost目錄下

4、打開找到對應的域名.conf文件,比如:你的網站域名是www.xxx.com,那麽vhost目錄下就會有一個www.xxx.com.conf文件,用記事本以外的軟件打開編輯,你會看到如下的代碼(軟件自動生成的)

#START-SITE
server {
listen 80;
server_name www.jsq.com;
access_log logs/www.jsq.com.access.log;
root D:/wwwroot/www.jsq.com; #網站絕對路徑
index index.php default.php index.html index.htm default.html default.htm;

include rewrite/www.jsq.com.conf;

#START-ERROR-PAGE
error_page 403 /403.html;
error_page 404 /404.html;
error_page 502 /502.html;
#END-ERROR-PAGE

#301-START
#301-END

#REFERER-START
#REFERER-END

#PROXY-START
#PROXY-END

#START-SSL
#END-SSL

#START-PHP
location ~ \.php$ {
root D:/wwwroot/www.jsq.com;
fastcgi_pass 127.0.0.1:4554;#後面4554 為默認端口請勿修改
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#END-PHP
}
#END-SITE

5、修改配置文件如下,紅色部分是修改後的,切勿直接復制 代碼增加不了顏色,看中文註釋

#START-SITE
server {
listen 80;
server_name www.jqqq.com;
access_log logs/www.jqqq.com.access.log;
root E:/wwwroot/www.jqtest.com/public;
index index.php default.php index.html index.htm default.html default.htm;

#include rewrite/www.jqqq.com.conf; #註釋該行,無需引用
location / { #第一部分 起始
try_files $uri $uri/ /index.php$uri;
#下面這兩個if是為了能獲取$_GET參數,不加則無法獲取
if ( -f $request_filename) {
break;
}
if ( !-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
break;
}
} #第一部分 結束

#START-ERROR-PAGE
error_page 403 /403.html;
error_page 404 /404.html;
error_page 502 /502.html;
#END-ERROR-PAGE

#301-START
#301-END


#REFERER-START
#REFERER-END

#PROXY-START
#PROXY-END

#START-SSL
#END-SSL
location ~ /\.ht { #第二部分 起始
deny all;
} #第二部 結束

#START-PHP
location ~* \.php(.*)$ {
root E:/wwwroot/www.jqtest.com/public;
fastcgi_pass 127.0.0.1:4554;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; #第三部分 起始
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info; #第三部分 結束
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#END-PHP
}
#END-SITE

6、重啟Nginx 然後看看網站是否已經可以使用路由了,並且$_GET參數也可以正常使用。

轉自鏈接:https://blog.csdn.net/weixin_41000837/article/details/80447055

nginx完美支持TP5的pathinfo路由模式