yii2 url重写并隐藏index.php方法

第一步 : 不管是 apache 还是 nginx ,想要隐藏 Index.php 文件,需要打开 urlManager 组件的配置,在进行后续的操作

[
‘components' => [
 'urlManager' => [
  'enablePrettyUrl' => true,//开启美化URL
  'showScriptName' => false,//是否显示脚本名称:index.php,同时应该配置 Web 服务
  'enableStrictParsing' => false,//是否开启严格解析
  //'suffix' => '.html',//生成带 .html 后缀的 URL
  'rules' => [

   ],
  ],
],
]

第二步 :

nginx 下 :

配置文件 nginx.conf 内容如下 :

user centos;
worker_processes 4;

error_log logs/error.log;

pid    logs/nginx.pid;

events {
  worker_connections 10240;
}

http {
  include    mime.types;
  default_type application/octet-stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  log_format log_json '{ "@timestamp": "$time_local", '
            '"remote_addr": "$remote_addr", '
            '"referer": "$http_referer", '
            '"request": "$request", '
            '"status": $status, '
            '"bytes": $body_bytes_sent, '
            '"agent": "$http_user_agent", '
            '"x_forwarded": "$http_x_forwarded_for", '
            '"up_addr": "$upstream_addr",'
            '"up_host": "$upstream_http_host",'
            '"up_resp_time": "$upstream_response_time",'
            '"request_time": "$request_time"'
            ' }';

  access_log logs/access.log;

  sendfile    on;
  #tcp_nopush   on;

  #keepalive_timeout 0;
  keepalive_timeout 200;
    client_max_body_size 200M;
  gzip on;

    include vhost/*.conf;
}

项目域名的配置整体是放在 vhost 这个目录下面,改目录下其中一个文件的内容

server {
    listen 80;
    server_name   域名;

    # 项目 index.php 地址
    root /home/centos/www/youdai-api/bird/web;

    access_log logs/youdaiApi.access.log log_json;
    error_log logs/youdaiApi.error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
        index  index.php;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

apche 下 : 伪静态配置

入口文件的同级目录下,放置 .htaccess 文件

内容如下 :

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Yii2框架控制器、路由、Url生成操作示例

    本文实例讲述了Yii2框架控制器.路由.Url生成操作.分享给大家供大家参考,具体如下: 控制器与路由 控制器以Controller作为后缀,继承自yii\web\Controller; 动作以action作为前缀,public访问修饰; 控制器ID 类名去后缀,全部转为小写,如果是驼峰命名多个单词转为中杠分割; 动作ID 去前缀,全部转为小写,如果是驼峰命名多个单词,转为中杠分割: 路由如何指向动作:控制器ID/动作ID URL访问规则:index.php?r=路由 传参使用&参数=值 的方式

  • Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等

    使用Yii2的时候,在某些场景和环境下需要获得Yii2目前所处于的module(模型).Controller(控制器).Action(方法),以及会调用控制器里面已经定义过的一些公共的方法等.对于这些问题Yii2可以在视图层View中使用$this->context这个对象去获得. 示例:譬如现在(视图层登陆界面)login.php方法下面: <?php //得到Yii2的当前的控制器Controller echo $this->context->id; //输出结果:site /

  • Yii2框架自定义类统一处理url操作示例

    本文实例讲述了Yii2框架自定义类统一处理url操作.分享给大家供大家参考,具体如下: 因为每个人写url的方式不一样,导致我们后期如果对url有修改的话,就非常麻烦. 所以我们需要来统一管理,同时还可以规范书写. 1.新建services\UrlService.php,services 是我们自定义的目录,专门用来写我们的各种自定义服务. <?php namespace app\services; use yii\helpers\Url; /** * 统一管理链接,并规范书写 * Class

  • yii2的restful api路由实例详解

    yii\rest\UrlRule 使用yii\rest\UrlRule来自动映射控制器的 restful 路由,简单快捷,缺点是必须得按规定好的方法名去写业务. 映射的规则如下,当然,你可以修改源码为你的习惯: public $patterns = [ 'PUT,PATCH {id}' => 'update', 'DELETE {id}' => 'delete', 'GET,HEAD {id}' => 'view', 'POST' => 'create', 'GET,HEAD' =

  • 详解Yii2 之 生成 URL 的方法

    前言 在项目中,推荐使用 Yii2 内置的 URL 工具类生成链接,这样可以非常便捷的管理整站的 URL 行为:比如通过修改配置改变整站的URL格式等.URL 更多高级的用法参见官方文档,这篇文章仅仅介绍 Yii2 生成 URL 的几种方式. Yii2 默认的 URL 链接格式 Yii2 默认的 URL 链接格式是指为开启 URL 美化时的格式. 未启用子模块的 URL 格式: // 参数 r 中的 article 表示控制器, view 表示动作 http://www.example.com/

  • Yii2创建控制器(createController)方法详解

    本文实例讲述了Yii2创建控制器(createController)方法.分享给大家供大家参考,具体如下: yii中创建控制器的是在application中的request通过UrlManager解析得出路由信息的,然后再由yii\base\Module中的 public function runAction($route, $params = []) 方法来创建控制器,最后由控制器再执行相应的动作. 首先得明确,Yii中的路由分三种情况: 第一种是带有模块的(module id/control

  • Yii2设置默认控制器的两种方法

    本文主要给大家介绍了关于Yii2默认控制器设置的内容,分享了两种方法供大家参考学习,下面来一起看看详细的介绍: 方法1: 首先Yii2中在/vendor/yiisoft/yii2/web/Application.php的28行 class Application extends \yii\base\Application { /** * @var string the default route of this application. Defaults to 'site'. */ public

  • yii2控制器Controller Ajax操作示例

    本文实例讲述了yii2控制器Controller Ajax操作的方法.分享给大家供大家参考,具体如下: public function actionSample() { if (Yii::$app->request->isAjax) { $data = Yii::$app->request->post(); $searchname= explode(":", $data['searchname']); $searchby= explode(":&quo

  • Yii2.0 Basic代码中路由链接被转义的处理方法

    按照惯例,说下运行环境和各版本编号 OS:Windows10 Apache:2.4 MySQL:5.7.15 PHP:7.0.11 问题描述:按照官网的提示,下载了basic版本的代码,配置了虚拟域名,打开浏览器可以访问了(具体过程略). 但是,在点击链接地址时会发现,链接地址被转义了,"/"变成了"%2F". 查找代码,一步一步找. 找到最后yii-v2.0.9-basic\vendor\yiisoft\yii2\web\UrlManager.php 第371行,

  • Yii2针对指定url的生成及图片等的引入方法小结

    本文实例讲述了Yii2针对指定url的生成及图片等的引入方法.分享给大家供大家参考,具体如下: // /index?r=site/index echo Url::to(['site/index']); // /index?r=site/index&src=ref1#name echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']); // the currently requested URL echo Url::to()

随机推荐