|
本帖最后由 曜日晨阳 于 2010-12-24 08:58 编辑
我们要实现的目标:
- 在nginx+php-frm(FastCGI)平台下架设CI应用
- 去CI的index.php
- 使用.htaccess减少对nginx.conf的修改造成的不良后果。。。
使用环境:CentOS 5.5;nginx 0.8.54;CI 1.7.3;php 5.2.14;FASTCGI......(其他略)
【正文开始】
1、Nginx.conf Rewrite规则写法(位于/path/to/nginx/conf)
server
{
listen 80;
server_name www.domain.com;
index index.html index.htm index.php;
#设置你的站点路径
set $wwwroot /path/to/your/wwwroot;
location / {
root $wwwroot;
index index.html index.htm index.php;
#rewrite规则如下:
rewrite ^/$ /index.php last;
rewrite ^/(?!index\.php|robots\.txt|static)(.*)$ /index.php/$1 last;
}
location ~ ^(.+\.php)(.*)$ {
root $wwwroot;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
#注意:去临时文件夹内找到你的php-cgi,也可能php-cgi.sock不是这么个名字。
fastcgi_pass unix:/tmp/php-cgi.sock;
include fastcgi_params;
}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /path/to/logs/wwwlogs/main.access.log access;
}
#引入虚拟主机目录下所有配置文档
include vhost/*.conf;
然后去CI的config里去掉index.php。
2、虚拟主机操作同上,只需要在里面删除location段,复制下面的这些进去就可以。
location / {
root $wwwroot;
index index.html index.htm index.php;
#rewrite规则如下:
rewrite ^/$ /index.php last;
rewrite ^/(?!index\.php|robots\.txt|static)(.*)$ /index.php/$1 last;
}
location ~ ^(.+\.php)(.*)$ {
root $wwwroot;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
#注意:去临时文件夹内找到你的php-cgi,也可能php-cgi.sock不是这么个名字。
fastcgi_pass unix:/tmp/php-cgi.sock;
include fastcgi_params;
}
3、或者引入.htaccess文档
如何引入?
在虚拟主机/wwwroot/other.domain.com的任意位置创建.htaccess(方便ftp更改)
写入第二条中的内容。
然后,在/vhost/other.domain.com.conf文档中加入:
include /path/to/your/wwwroot/other.domain.com/.htaccess
补充:每次修改过.htaccess以后必须重加载nginx的配置,以使其生效。
#/path/to/your/nginx/sbin/nginx -s reload
即可。
收工。完毕。 |
评分
-
查看全部评分
|