让nginx完美支持Thinkphp的配置

习惯了用apache后,当第一次用nginx时,把原来的项目(thinkphp框架)部署在新服务器上的时候,惊呆了!

所有的URL模式下都不能正常运行,甚至连css,js文件都不能正常加载。

原因是ngibx不支持pathinfo

主要是需要配置nginx

location / {
            root   D:/wnmp/www;
            index  index.html index.htm;
			#访问路径的文件不存在则重写URL转交给ThinkPHP处理
			if ( !-e $request_filename ) {
			   rewrite  ^/(.*)$  /index.php/$1  last;
			   break;
			}
        }
location ~ \.php/?.*$ {
			root        D:/wnmp/www;
			fastcgi_pass   127.0.0.1:9001;
			fastcgi_index  index.php;
			#加载Nginx默认"服务器环境变量"配置
			include        fastcgi_params;
			include		   fastcgi.conf;
			#设置PATH_INFO并改写SCRIPT_FILENAME,SCRIPT_NAME服务器环境变量
			set $fastcgi_script_name2 $fastcgi_script_name;
			if ( $fastcgi_script_name ~ "^(.+\.php)(/.+)$" ) {
				set $fastcgi_script_name2 $1;
				set $path_info $2;
			}
			fastcgi_param   PATH_INFO $path_info;
			fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;
			fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;
		}

最后这部分是为了css和js 以及图片等资源

location ~* ^.+\.(jpg|jpeg|gif|png|bmp|css|js|swf)$ {
			access_log off;
			root D:/wnmp/www;
			break;
		}

让nginx完美支持Thinkphp的配置,码迷,mamicode.com

时间: 2024-10-22 14:54:55

让nginx完美支持Thinkphp的配置的相关文章

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式 BY 孙 权 · 2014年8月6日 我的环境 系统 : Ubuntu12.04 x86_64 环境 : Nginx1.1.19+PHP5.3.10+Mongo2.6.3 由于公司要用Nginx+Mongo+PHP,所以我要把刚刚配置好的LAMP推翻,然后重新安装LNMP.软件安装就不在这里介绍了,如果有需要,可以看这里. 如何安装Nginx. 下面介绍如何使Nginx支持ThinkPHP的Pathinfo和URL

nginx完美支持tp框架

nginx完美支持tp框架 server { listen 80; server_name mit.520m.com.cn; access_log /data/wwwlogs/mit.520m.com.cn_nginx.log combined; index index.html index.htm index.php; #include /usr/local/nginx/conf/wordpress.conf; root /data/wwwroot/peita2.0; location / {

nginx完美支持thinkphp3.2.2(需配置URL_MODEL=>1 pathinfo模式)

来源:http://www.thinkphp.cn/topic/26657.html 第一步:配置SERVER块 server { listen 80; server_name www.domain.com domain.com; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # \.php 只处理动态请求,对于静态资源请求由下面的 location匹配和处理 location ~ \.php { root /da

修改nginx配置文件支持Thinkphp pathinfo以及rewrite模式

server { listen 80; server_name localhost; include /etc/nginx/default.d/*.conf; root /usr/share/nginx/thinkercms; location / { index index.php; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ .+\.php($|/) { set

使Nginx支持ThinkPHP框架

一.nginx不支持thinkphp的原因 ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可.在Apache下只需要开启mod_rewrite模块就可以正常访问了,但是Nginx中默认是不支持PATHINFO的,所以nginx默认情况下是不支持thinkphp的.不过我们可以通过修改nginx的配置文件来让其支持thinkphp. 二.让nginx支持pathinfo,支持thinkphp 1

Nginx支持thinkphp pathinfo模式

Nginx默认不支持thinkphp的pathinfo 模式,无奈只能修改nginx配置.修改后的配置如下: 1.nginx.conf: user  apache apache; worker_processes  16; worker_cpu_affinity auto; pid        /var/run/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections  51200; } http

THINKPHP的NGINX rewrite的两种配置

一.普通方式 server { ... location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给ThinkPHP处理 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ \.php/?.*$ { root /var/www/html/website; fastcgi_pass 127.0.0

Nginx 开启PATHINFO支持ThinkPHP框架实例

ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可.在Apache下只需要开启mod_rewrite模块就可以正常访问了,但是Nginx中默认是不支持PATHINFO的,所以nginx默认情况下是不支持ThinkPHP的.不过我们可以通过修改nginx的配置文件来让其支持ThinkPHP. 虚拟主机配置文件:  nginx/conf/vhost/127.0.0.1_8090.conf serve

lnmp支持thinkphp

lnmp环境配置好后,直接把thinkphp放到相应的目录里进行解析,是不行的,thinkphp默认是用apache的,相应目录下有个.htacess是关于apache重写的,lnmp是用nginx,不适用,需要修改nginx 配置文件里的server{}里面的 server { listen 80; server_name domain; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } loca