您好,登錄后才能下訂單哦!
今天小編給大家分享一下nginx中怎么配置pathinfo模式的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
緣由
很久不使用apache了,漸漸對apache感到陌生,因為朋友有個zendframework框架從apache移到nginx下,需要pathinfo模式支持。
網上海搜
于是開始搜索nginx+pathinfo相關文章,一開以為很容易就會配置好。因為搜索后發現有大量文章介紹nginx開啟pathinfo模式,感覺不是什么難事。但是經過幾個小時下來,還是沒有配置好。并且大量文章的內容都極其相似,基本都是轉載的。
開始有點急了!因為一天過去了沒有配好。
繼續摸索
沒辦法,繼續搜索。為了驗證方便,我用a.com下載thinkphp框架搭了個環境。并且加了useraction.class.php控制器類,在類里加了一個app方法并輸出一行文字。
于是,我開始不斷地改寫nginx.conf文件重啟nginx,不斷的刷新a.com/index.php/user/app 地址。結果要么是地址損壞提示、502、access defind.
又是一天過去了,開始感覺有點彷徨。
最后堅持
按理說我感覺應該有nginx+thinkphp的先例,只是我沒有搜索到答案而已。突然間感覺網上好迷茫,一個小小的問題尋求不到解答。今晚,又試著使用nginx thinkphp關鍵字搜索,我一下點到十多頁以后,找到一處代碼
復制代碼 代碼如下:
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param script_filename $document_root$real_script_name;
fastcgi_param script_name $real_script_name;
fastcgi_param path_info $path_info;
}
保存修改,重啟nginx,刷新瀏覽器
意想不到的頁面出現了
居然能訪問了,終于松了一口氣,實在太不容易了。
貼出nginx.conf代碼:
復制代碼 代碼如下:
user www www;
worker_processes 2;
worker_cpu_affinity 01 10;
error_log /data1/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
server
{
listen 80;
server_name a.com;
index index.php;
root /data0/htdocs/a.com/www;
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param script_filename $document_root$real_script_name;
fastcgi_param script_name $real_script_name;
fastcgi_param path_info $path_info;
}
}
}
以上就是“nginx中怎么配置pathinfo模式”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。