千家信息网

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

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章将为大家详细讲解有关使用Ci框架url重写过程是什么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。需求,在框架里面访问地址 https:/
千家信息网最后更新 2025年02月06日使用Ci框架url重写过程是什么样的

这篇文章将为大家详细讲解有关使用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;

下面是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 onRewriteCond $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_bRewriteRule ([^/]{1,})/{1}([^/]{1,})-([^/]{1,})-([^/]{1,})  /index.php?c=$1&m=$2_$3_$4 [L]

-

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

0