nginx配置yii2.0重写的例子

apache和nginx比起来,我更倾向nginx,占用资源少,且性能高,不管是开发还是生产环境都很好用。那么,如何配置nginx让其支持yii2.0的访问呢?

配置范例如下:

server {
    listen       80;
    server_name  reson.com;

    location / {
        root   D:/wwwroot/reson/web;
        index  index.html index.php;
  if (!-e $request_filename){
   rewrite ^/(.*) /index.php last;
  }
    }

 location ~ \.php$ {
  root           D:/wwwroot/reson/web;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include        fastcgi_params;
 }

}

扩展一下,如果想让yii2.0在nginx下支持rewrite路由(pathinfo)的形式访问的话

一.配置yii2.0。
打开config目录下的web.php,在$config = [ 'components'=>[ 加到这里 ] ]中加入:
'urlManager' => [
  'enablePrettyUrl' => true,
  'showScriptName' => false,
  'rules' => [
  ],
],
yii配置pathinfo
此时,yii2.0已经支持以pathinfo的形式访问了,如果此时访问不了,继续往下看。

二.配置web服务器。
1.如果是apache,在入口文件(index.php)所在的目录下新建一个文本文件,接着另存为.htaccess,用记事本打开此文件加入:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
保存即可。

2.如果是nginx,在nginx配置文件中加入:
server {
 listen       80;
 server_name  www.111cn.net;

 location / {
  root   E:/wwwroot/yii2.0;
  index  index.html index.php;
  if (!-e $request_filename){
   rewrite ^/(.*) /index.php last;
  }
 }

 location ~ \.php$ {
  root           E:/wwwroot/yii2.0;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include        fastcgi_params;
 }
}

三:重启web服务器。

时间: 2024-10-03 12:03:55

nginx配置yii2.0重写的例子的相关文章

yii2.0配置以pathinfo的形式访问

yii2.0默认的访问形式为:dxr.com/index.php?r=index/list,一般我们都会配置成pathinfo的形式来访问:dxr.com/index/list,这样更符合用户习惯. 具体的配置方法为: 一.配置yii2.0. 打开config目录下的web.php,在$config = [ 'components'=>[ 加到这里 ] ]中加入: 'urlManager' => [   'enablePrettyUrl' => true,   'showScriptNa

yii2.0实现pathinfo的形式访问的配置方法_php实例

yii2.0默认的访问形式为:dxr.com/index.php?r=index/list,一般我们都会配置成pathinfo的形式来访问:dxr.com/index/list,这样更符合用户习惯. 具体的配置方法为: 一.配置yii2.0. 打开config目录下的web.php,在$config = [ 'components'=>[ 加到这里 ] ]中加入: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName'

nginx配置详解-url重写、反向代理、负载均衡

应用层的负载均衡 master/worker结构:一个master进程,生成一个或多个worker子进程 nginx请求的连接方式epoll 是Linux下多路复用IO接口select/poll的增强版本 select 遍历epoll无需遍历 1.nginx安装(未安装邮件服务器模块) ./configure --help查看编译选项 配置文件中路径没加/以prefix指定的路径开始./configure \--prefix=/usr \--sbin-path=/usr/sbin/nginx \

centos中nginx配置markdown 编辑器例子

先说一下实现的原理,当然此文章主要讲了我的实现,当然还有其他的实现方式,原理都是差不多的. 首先,我们需要安装kramdown解释器,这个很好理解吧,和php一样,他的特点标签能够实现渲染肯定需要解释器来解析,这里kramdown解释器的官网为http://kramdown.gettalong.org/installation.html,这是安装界面,根据自己的系统安装即可,不过他需要安装ruby依赖.然后我通过nginx的url转发,将.md的文档转发给一个php文件来处理,这个php文件,就

Ubuntu nginx 1.6.0 服务器 nginx.conf等相关配置

环境UBUNUT 14.04  nginx:nginx 1.6.0 内存:12G 呆狐狸.风来了 等有空了再添加 注释 nginx.conf user www www; #启动进程,通常设置成和cpu的数量相等 worker_processes 4; #错误日志文件 error_log /www/wwwLogs/nginx_error.log; pid /www/lanmps/nginx/logs/nginx.pid; worker_rlimit_nofile 5120; events { us

yii2.0在php命令行中运行的例子

有时候有些功能需要做到计划任务中去,因此就需要yii能用php命令去执行.yii2.0是支持php命令行运行的,操作方法如下:   在yii根目录下面有个"yii"文件(不是"yii.bat"),这个文件就是入口.然后"commands"目录下会默认有个"HelloController.php"控制器文件,这个是一个demo.打开这个控制器文件,源码如下(删掉了部分注释):   <?php   namespace app

Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例_nginx

Yii的Nginx rewrite 如下为nginx yii的重写 server { set $host_path "/data/site/www.jb51.net"; access_log /data/logs/nginx/www.jb51.net_access.log main; server_name jb51.net www.jb51.net; root $host_path/htdocs; set $yii_bootstrap "index.php"; #

你真的了解如何将 Nginx 配置为Web服务器吗

阅读之前,建议先阅读初识 Nginx. 之后,我们来了解一下 Nginx 配置. 抽象来说,将 Nginx 配置为 Web 服务器就是定义处理哪些 URLS 和如何处理这些URLS 对应的请求.具体来说,就是定义一些虚拟服务器(Virtual Servers),控制具有特定 IP 和域名的请求. 更具体的来说, Nginx 通过定义一系列 locations 来控制对 URIS 的选择.每一个 location 定义了对映射到自己的请求的处理场景:返回一个文件或者代理请求,或者根据不同的错误代码

Nginx 配置指令的执行顺序(四)

 ngx_lua 模块提供了配置指令 access_by_lua,用于在 access 请求处理阶段插入用户 Lua 代码.这条指令运行于 access 阶段的末尾,因此总是在 allow 和 deny 这样的指令之后运行,虽然它们同属 access 阶段.一般我们通过 access_by_lua 在 ngx_access 这样的模块检查过客户端 IP 地址之后,再通过 Lua 代码执行一系列更为复杂的请求验证操作,比如实时查询数据库或者其他后端服务,以验证当前用户的身份或权限.       我