温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Ci框架url重写过程是什么样的

发布时间:2021-10-21 10:44:13 来源:亿速云 阅读:149 作者:柒染 栏目:大数据

这篇文章将为大家详细讲解有关使用Ci框架url重写过程是什么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

需求,在框架里面访问地址 https://www.xx.net/de/twitter-video-download   由于框架里面方法不能使用-来命名,

我想到的方法是 twitter_video_download  为方法名,但是ci 框架本身的/ 导致重写不成功,

所以改了ci 框架的动态访问方式 

问,如:

http://www.myweb.com/index.php/weclome/index  (welcome表示控制器,index表示控制器中的一个方法)。

http://www.myweb.com/index.php/admin/welcome/index  (admin表示控制器controler文件夹中的一个子文件,welcome表示admin里面的一个控制器,index表示welcome控制器中的一个方法)。

     二、以前习惯用 http://www.myweb.com/index.php?c=welcome&m=index&x=123131 这种普通模式进行访问,对于这样的要怎么弄了,我想 CI 这种流行的框架,不会只有一种路径访问URL形式,这个基于MVC模式的框架,一定有那种普通模式进行访问URL的,这个一定和配置文件有关的,实践证明这个是正确的。

     方法:打开应用文件application找到配置文件夹config,然后找到config.php文件,如下图

//以前
//$config['uri_protocol']  = 'REQUEST_URI';
//改之后
$config['uri_protocol']    = 'PATH_INFO';
$config['url_suffix'] = '';
$config['language']    = 'english';
$config['charset'] = 'UTF-8';
$config['enable_hooks'] = FALSE;
$config['subclass_prefix'] = 'MY_';
$config['composer_autoload'] = FALSE;
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
//以前
//$config['enable_query_strings'] = FALSE;
//改之后
$config['enable_query_strings'] = TRUE;

使用Ci框架url重写过程是什么样的

下面是nginx 重写的规则

location / {
  

location / {rewrite   "([^/]{1,})/{1}([^/]{1,})-([^/]{1,})-([^/]{1,})"  /index.php?c=$1&m=$2_$3_$4 last;rewrite   "^/([^/]*)/{0,}"  /index.php?c=$1&m=index last;break;}


    break;
}

上面为什么需要加双引号 在nginx 重启时候出现这个错误  nginx:[emerg] directive “rewrite” is not terminated by “;”错误

错误原因:

后来调试发现,这是由于规则里有大括号“{ }”的符号,Nginx误以为这是规则的结尾,产生错误。

解决方法:

因此,为避免这种情况的发生,需要用双引号把伪静态规则给标识出来,就可以了。

下面是apache的规则

RewriteEngine on
RewriteCond $1 !^(index.php|admin.php|images|statics|robots.txt)
#/de 和 /de/都可以访问
RewriteRule ^([^/]*)/{0,}$  /index.php?c=$1&m=index [L]
#/de/a-video-b  -----> /index.php?c=de&m=a_video_b
RewriteRule ([^/]{1,})/{1}([^/]{1,})-([^/]{1,})-([^/]{1,})  /index.php?c=$1&m=$2_$3_$4 [L]

-

关于使用Ci框架url重写过程是什么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ci
AI