当使用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>

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

  1. CodeIgniter学习笔记四:CI中的URL相关函数,路由,伪静态,去掉index.php

    一.URL相关函数 1.加载url模块 加载url有两种方式: a.自动加载:在 application/config/autoload.php 中开启 $autoload['helper'] = a ...

  2. MVC3.0,路由设置实现伪静态IIS中404错误

    C# code? 1 2 3 4 5  routes.MapRoute("NewQueryTest.asp",                 "NewQueryTest ...

  3. CI中REST URL含有中文怎么处理(报错:The URI you submitted has disallowed characters)

    解决方法: 客户端在发送GET URL请求的时候,将含有中文的URL编码即可 比如: 原始:http://localhost/qk/rest/user_album_api/get_user_album ...

  4. Cognos11中通过URL访问report的设置

    1:以往的cognos版本中在报表的属性中可以找到 url的属性,稍加修改就可以通过URL进行访问了 2:Cognos11中找了半天也没有报表URL这个属性,但是IBM官方也给出了解决方案 Answe ...

  5. Cognos11中通过URL传参访问动态Report

    一.需求: 在浏览器输入一个URL,在URL后面加上参数就可以访问一个有提示值的报表?比如下面的报表 二.解决办法 Cognos  Model 查询主题设计层概要 Select * from [UCO ...

  6. MVC中的URL路由(一)

    URL路由系统通过对请求地址进行解析从而得到以目标Controller名称为核心的路由数据.Url路由系统最初是为了实现请求url与物理文件路径分离而建立的,MVC的Url Route是将Url地址与 ...

  7. CI 路由设置

    $route['news/show/(:num)']='news/show/$1';   前边是匹配 网址   后边是  指定控制器 在application/config/文件夹下有routes.p ...

  8. express中路由设置的坑-----1

    router.get('/commodities/sortable', utils.logged, function (req, res) { Commodity.find({force_top:tr ...

  9. 十四、 React路由(react-router4.x): 动态路由、get传值、React中使用url模块

    概述 新闻列表 -跳转-> 详情页 时,想把列表对应的id传到详情页里,可用到三种传值方法: 1.动态路由传值 2.get传值 3.localstorage传值 一.动态路由传值 [App.js ...

随机推荐

  1. JavaScript中原生事件

    DOM0事件模型: 所有浏览器都支持,只能注册一种事件 1.绑定: document.getElementById("id").onclick = function(e){}; 解 ...

  2. echarts 中 请求后台改变数据

    function tablenumber() { $.ajax({ type : "get", url : "../res/error.json", dataT ...

  3. html第四节课

    css CSS(Cascading Style Sheet,叠层样式表),作用是美化HTML网页. /*注释区域*/    此为注释语法 一.样式表 (一)样式表的分类 1.内联样式表 和HTML联合 ...

  4. 洛谷P1583 魔法照片【模拟+排序】

    一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序,每人就有 ...

  5. Llinux,NFS服务搭建(文件共享)

    NFS配置文件权限参数说明(/etc/exports) 1.rw :表示可读写权限. 2.ro :表示只读权限. 3.sync :请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回.( ...

  6. git常见问题总结

    1.每次上传文件的时候,有很多iml文件容易不小心上传上去,然后报错,所以可以把这些文件取消上传 如图所示,每次提交时,都不会显示标红文件 具体操作步骤如下:

  7. 洛谷 P1197 BZOJ 1015 [JSOI2008]星球大战 (ZOJ 3261 Connections in Galaxy War)

    这两道题长得差不多,都有分裂集合的操作,都是先将所有操作离线,然后从最后一步开始倒着模拟,这样一来,分裂就变成合并,也就是从打击以后最终的零散状态,一步步合并,回到最开始所有星球都被连为一个整体的状态 ...

  8. MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决

    解决办法: [Edit]->[Preference]->[SQL Editor] 将下图DBMS connection read time out (in seconds)适当调大: 参考 ...

  9. HTTP基本认证(Basic Authentication)的JAVA演示样例

    大家在登录站点的时候.大部分时候是通过一个表单提交登录信息.可是有时候浏览器会弹出一个登录验证的对话框.例如以下图,这就是使用HTTP基本认证.以下来看看一看这个认证的工作过程:第一步:  clien ...

  10. Python——迭代器和解析(3)

    用迭代工具模拟zip和map ====================================================================== 我们已经知道了zip怎样组合 ...