概述
今天遇到一個問題,Ubuntu+Nginx+MySQL配置ThinkPHP的項目,做了一半發現,Nginx不支持ThinkPHP的PATH_INFO模式,百度了好久,在朋友的幫忙下才解決,記錄下。
Nginx支持ThinkPHP的PATH_INFO
環境
Ubuntu 14.04+Nginx+MySQL。所有程序都是通過apt-get安裝的,所以Nginx的配置文件路徑在/etc/nginx/sites-available/default。
解決方法
定位到Nginx配置文件的如下部分:
代碼如下:location / {
# 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;
}
正則的寫法
解決這個問題的時候,看到了好幾種解決方案,光正則就看到了好幾個,也不知道到底哪個是最標準的,本人正則也不是很熟,先記錄下來,以后慢慢研究:
正則1:
代碼如下:
rewrite ^/MYAPP/(.*)$ /MYAPP/index.php/$1 last;
正則2:
代碼如下:
rewrite ^(.*)$ /index.php?s=$1 last;
新聞熱點
疑難解答