CentOS6.5下Yii在Nginx下的rewrite配置

环境

系统版本:CentOS6.5 x86_64
Nginx版本:nginx 1.6

一、吐嘈

坑哇,自己在开始在apache上搭建的,一切测试正常,结果转移到nginx平台后,发现里面的链接点击全部提示404,第一反应是.htaccess规则没有正常加载,开始尝试自己改写规则,结果没成功,百度一下,果然有nginx平台下的yii rewrite规则,配置如下:

二、Nginx配置

1.在nginx.conf的server段里面添加以下代码:

location / {
 if (!-e $request_filename){
 rewrite ^/(.*) /index.php last;
 }
 }

2.重启nginx

/usr/local/nginx/sbin/nginx -s reload

三、yii配置

在Yii的protected/conf/main.php去掉如下的注释

'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
 '<controller:\w+>/<id:\d+>'=>'<controller>/view',
 '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
 '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),

刷新一下就好了

若yii在nginx下显示404,请尝试重启nginx

时间: 2024-08-07 10:31:07

CentOS6.5下Yii在Nginx下的rewrite配置的相关文章

有一套破解程序,apache下正常,nginx下就打不开

问题描述 有一套破解程序,apache下正常,nginx下就打不开 有一套破解程序,apache下正常,nginx下就打不开.想知道这是什么原理?破解和服务器环境有关系吗?能提供思路解决吗? 解决方案 可能破解程序依赖web server,而刚好支持apache,不支持nginx 解决方案二: 破解是修改特定的模块,所以只能支持特定的软件.你可以用apache部署,然后用ngnix进行反向代理. 解决方案三: 刚才也发现了,破解成破解的不完整,只支持apache

Symfony2在Nginx下的配置方法图文教程_php实例

本文详细讲述了Symfony2在Nginx下的配置方法.分享给大家供大家参考,具体如下: 网上有很多关于symfony2在nginx下的配置文章,如果是小白,按照网上贴出来的配置文件配置,却怎么也不成功,我经过多次摸索,写下心得: 1. 首先开启Nginx的pathinfo 至于什么是pathinfo,可以参考文章<nginx下支持PATH_INFO的方法实例详解>,自行脑补.很多人按照教程配置的时候,会报500的错误,查报错日志也查不出来,八成就是没有开启pathinfo. 如果你的主机上安

centos 6.5 Nginx下Redmine2.6搭建

Nginx下Redmine2.6配置 CentOS6.5下安装Redmine2.6+MySQL5.6+Nginx,教程如下:1. 初始环境 系统版本:CentOS-6.6-x86_64-minimal.iso 安装LNMP,参考<lnmp一键安装包>:修改options.conf,home_dir=/data/wwwroot 2. ruby安装 cd lnmp/src wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz

ubuntu下的nginx+php+mysql安装配置

1.更新 sudo apt-get update 2.安装nginx sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为: * 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在 了/etc/nginx/sites-available下 *程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中 *并已经 在/etc/init.d/下创建了启动脚本nginx * 默认的虚拟主机的目录设置在了/var/www/

nginx下禁止目录运行php

  nginx下禁止目录执行php的方法则简单许多,允许设定多个目录 不知道是否我对apache那个不了解,如果有更好的办法,希望大家指出共享学习.thx location ~* ^/(attachments|images)/.*.(php|php5|PHP|PHP5)$ { deny all; } 当web目录不是根目录,或者有多个目录的时候可以是 location ~* ^(/discuz/|/bbs/)/(attachments|images)/.*.(php|php5|PHP|PHP5)

nginx下无法访问中文文件名

  方法一: 搞了大半天nginx下无法访问中文文件名的问题,现在看来是secureCRT的问题? 看来还是字符集的问题了. 看来nginx不需要象apache那样要单独加载支持中文模块. 服务器端字符集如下 [root@test]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8″ LC_NUMERIC="en_US.UTF-8″ LC_TIME="en_US.UTF-8″ LC_COLLATE="en_US.UTF-8

Nginx下WordPress伪静态设置教程

对于Apache和Nginx的对比网上也是一大堆了,这里就不再赘述,以后有机会详细讲解. 相信用Wordpress的博主们都会用到伪静态,伪静态的好处是对搜索引擎友好,看起来也好看. 用虚拟主机的用户大都是用Apache,Apache的伪静态Wordpress支持很好,几乎不用自己去编辑.喜爱折腾,喜爱独立博主们用VPS的还是很多的,Nginx在VPS中作为架设环境还是挺常见,但是用Nginx时Wordpress就变成瞎子一般,这里就怎样在Nginx下设置伪静态. 我们不需要了解怎样写伪静态,不

Nginx下proxy

 下文给各位重点介绍Nginx下proxy_set_header 模块代码,脚面要了解的朋友不防进入看看吧.     前言:由于新注册的腾讯企业邮箱已经无法绑定域名(之前绑定的依然可以使用),因此采用nginx模块来强制转向! 代码:     server { listen       80; server_name  mail.t4x.org; rewrite ^/(.*)$ https://mail.t4x.org/$1 permanent; location / {     root  

nginx下的wordpress如何伪静态

  以前用的虚拟主机一直是apache,现在换到vps用的是nginx,原来的wordpress伪静态全部失效,怎么办? 如何在nginx下设置让原来的设置依然有效呢? 经过测试发现 其实在Nginx下配置WordPress的Rewrite还是比较简单的,在location /{------}里面加入 if (!-e $request_filename){ rewrite (.*) /index.php; } 即可实现. 各位朋友试试吧