yii2  nginx配置伪静态rewrite重写的例子

yii2 nginx配置伪静态rewrite重写的例子

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

 

yii2.0默认的访问形式为:icoyun.com/index.php?r=index/list,一般我们都会配置成pathinfo的形式来访问:icoyun.com/index/list,这样更符合用户习惯。

配置范例如下:

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 nginx配置伪静态rewrite重写的例子
此时,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服务器。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器 , 文件 配置 nginx yii url重写、yii2 重写 nginx、yii2.0 url重写、yii2.0 nginx rewrite、yii2.0 nginx配置,以便于您获取更多的相关知识。

 

YII2路由美化访问,美化url

(四) YII配置

1. 在main.php下 components这个数组中增加如下如下配置:

YII2设置路由美化访问,美化url
        'urlManager' => [
            'enablePrettyUrl' => true,  //开启美化url配置,默认关闭
            'enableStrictParsing' => false, //不启用严格解析,默认不启用.如果设置为true,则必须建立rules规则,且路径必须符合一条以上规则才允许访问
            'showScriptName' => false, //隐藏index.php
            'rules' => [
               // http://frontend.com/site/index 重写为  http://frontend.com/site
                '<controller:\w+>/'=>'<controller>/index',
            // http://frontend.com/site/view?id=1 重写为 http://frontend.com/site/1
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
            // http://frontend.com/site/ceshi?id=123 重写为  http://frontend.com/site/ceshi/123
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
            ]
        ],
YII2设置路由美化访问,美化url

 

 

==============================================================================================

Nginx  yii2官方rewrite规则参考网站:

location / {
# Redirect everything that isn’t a real file to index.php
try_files $uri $uri/ /index.php$is_args$args;
}

https://github.com/yiisoft/yii2-app-advanced/blob/master/vagrant/nginx/app.conf

http://www.yiiframework.com/doc-2.0/guide-start-installation.html#configuring-web-servers

 

或者Nginx  yii2 rewrite规则参考:

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