溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Ci框架url重寫過程是什么樣的

發(fā)布時間:2021-10-21 10:44:13 來源:億速云 閱讀:147 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(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;

使用Ci框架url重寫過程是什么樣的

下面是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é)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

ci
AI