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中怎么配置pathinfo模式

居然能訪問了,終于松了一口氣,實在太不容易了。
貼出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;
??? }
? }
}

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享