您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)使用Ci框架url重寫過程是什么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
需求,在框架里面訪問地址 https://www.xx.net/de/twitter-video-download 由于框架里面方法不能使用-來命名,
我想到的方法是 twitter_video_download 為方法名,但是ci 框架本身的/ 導(dǎo)致重寫不成功,
所以改了ci 框架的動態(tài)訪問方式
問,如:
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控制器中的一個方法)。
二、以前習(xí)慣用 http://www.myweb.com/index.php?c=welcome&m=index&x=123131 這種普通模式進(jìn)行訪問,對于這樣的要怎么弄了,我想 CI 這種流行的框架,不會只有一種路徑訪問URL形式,這個基于MVC模式的框架,一定有那種普通模式進(jìn)行訪問URL的,這個一定和配置文件有關(guān)的,實(shí)踐證明這個是正確的。
方法:打開應(yīng)用文件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 重寫的規(guī)則
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 重啟時候出現(xiàn)這個錯誤 nginx:[emerg] directive “rewrite” is not terminated by “;”錯誤
錯誤原因:
后來調(diào)試發(fā)現(xiàn),這是由于規(guī)則里有大括號“{ }”的符號,Nginx誤以為這是規(guī)則的結(jié)尾,產(chǎn)生錯誤。
解決方法:
因此,為避免這種情況的發(fā)生,需要用雙引號把偽靜態(tài)規(guī)則給標(biāo)識出來,就可以了。
下面是apache的規(guī)則
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]
-
關(guān)于使用Ci框架url重寫過程是什么樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。