欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CI中的url相关函数以及路由设置和伪静态技术

程序员文章站 2022-07-09 21:39:15
当使用CI框架进行开发时,我们的一些数据传递的URL不应该写死,可以使用如下方法;比如说我们需要表单提交一个数据; 1.在controller控制器中我们需要先创建一个加载helper和视图的方法; eg:pubulic fuction add(){ $this -> load -> helper( ......

  当使用CI框架进行开发时,我们的一些数据传递的URL不应该写死,可以使用如下方法;比如说我们需要表单提交一个数据;

    1.在controller控制器中我们需要先创建一个加载helper和视图的方法;

        eg:pubulic fuction add(){

            $this -> load -> helper( ‘ url ’ );  //首先加载 helper( 'url' ) 到超级对象中,site_url函数在helper的辅助函数中;

            $this -> load -> view( ' user/add ' )  //其次加载视图文件;

          }

    2.创建一个insert方法来接收post提交的数据;

    3.最后就可以在view视图中使用site_url函数生成URL地址

        <form action = " <?php echo site_url( ' user/insert ' )> " method="post">

  官方的文档中是这么说明的;

    根据配置文件返回你的站点 URL 。index.php (获取其他你在配置文件中设置的 index_page 参数) 将会包含在你的 URL 中,另外再加上你传给函数的 URI 参数,以及配置文件中设置的 url_suffix 参数。

    推荐在任何时候都使用这种方法来生成你的 URL ,这样在你的 URL 变动时你的代码将具有可移植性;

  site_url(控制器/方法);该函数返回项目根目录的url ;

  也可以根据需要配置helper辅助函数url的自动加载,但是不推荐使用,如url使用频繁可使用;具体配置操作如下;

    在application/config/autoload.php中查找到$autoload[' helper '] = array( 'url' )进行配置;

  路由设置,伪静态,隐藏入口文件

    在application/config/routes.php文件中查找到$route[ ' default_contorller ' ] = "welcome" ;进行配置,默认配置是welcom控制器;

    伪静态技术:

      CI中的伪静态通常是在application/config/routes.php文件中写一段正则表达式来完成;

        eg : $route[ ' news / [/d]{6} / ([\d] + )\.html ' ] = 'article/show/$1';

        //当输入 http://主机名/入口文件/news/234456/4.html 时则会访问到 主机名/入口文件/article/show/4  //(随便输6个数)(这里4是传的参数);    

      有正则表达式在中间支持,可以使url任意显示成你想显示的url;

    隐藏入口文件:

      首先要在 apache/conf/httpd.conf 文件中设置 LoadModule rewrite_module modules/mod_rewrite.so 取消注释,重启apache;再新建一个文本文件另存为,文件名输入".htaccess"保存放入CI根目录下(由于.htaccess文件无法直接创建),再在.htaccess文件中输入以下内容即可;

      <Ifmodule mod_rewrite.c>

        RewriteEngine on

        RewriteCond %{REQUEST_FILENAME} ! -d

        RewriteCond %{REQUEST_FILENAME} ! -f

        RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

      </Ifmodule>