Nginx配置支持ThinkPHP的PATH_INFO
概述
今天遇到一個(gè)問題,Ubuntu+Nginx+MySQL配置ThinkPHP的項(xiàng)目,做了一半發(fā)現(xiàn),Nginx不支持ThinkPHP的PATH_INFO模式,百度了好久,在朋友的幫忙下才解決,記錄下。
Nginx支持ThinkPHP的PATH_INFO
環(huán)境
Ubuntu 14.04+Nginx+MySQL。所有程序都是通過apt-get安裝的,所以Nginx的配置文件路徑在/etc/nginx/sites-available/default。
解決方法
定位到Nginx配置文件的如下部分:
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
加入下面的代碼:
if (!-e $request_filename)
{
rewrite ^/myapp/(.*)$ /myapp/index.php?s=$1 last;
break;
}
正則的寫法
解決這個(gè)問題的時(shí)候,看到了好幾種解決方案,光正則就看到了好幾個(gè),也不知道到底哪個(gè)是最標(biāo)準(zhǔn)的,本人正則也不是很熟,先記錄下來,以后慢慢研究:
正則1:
rewrite ^/MYAPP/(.*)$ /MYAPP/index.php/$1 last;
正則2:
rewrite ^(.*)$ /index.php?s=$1 last;
相關(guān)文章
Nginx 轉(zhuǎn)發(fā)匹配規(guī)則的實(shí)現(xiàn)
這篇文章主要介紹了Nginx 轉(zhuǎn)發(fā)匹配規(guī)則的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03nginx添加http_ssl_module并且配置域名指定端口的操作方法
這篇文章主要介紹了nginx添加http_ssl_module并且配置域名指定端口的操作方法,文末附帶linux下防火墻和開放端口,需要的朋友可以參考下2023-11-11使用google-perftools優(yōu)化nginx在高并發(fā)時(shí)的性能的教程(完整版)
如果使用googler開發(fā)的google-perftools優(yōu)化Nginx和MySQL的內(nèi)存管理,性能將會(huì)有一定程度的提升。特別是對(duì)高并發(fā)下的服務(wù)器,效果更明顯2013-02-02Nginx利用Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP的方法
在站點(diǎn)遇到攻擊且無明顯攻擊特征,造成站點(diǎn)訪問慢,nginx不斷返回502等錯(cuò)誤時(shí),可利用nginx+lua+redis對(duì)該IP進(jìn)行封禁,這篇文章主要給大家介紹了關(guān)于Nginx利用Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP的相關(guān)資料,需要的朋友可以參考下2018-12-12