十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关使用Ci框架url重写过程是什么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
超过10年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都网站设计、成都做网站、外贸网站建设,成都网站推广,成都网站优化,整体网络托管,小程序制作,微信开发,成都app软件开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
需求,在框架里面访问地址 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 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重写过程是什么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。