W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在默認(rèn)情況下,CodeIgniter 中的 URL 被設(shè)計(jì)成對(duì)搜索引擎和用戶友好的樣式。 不同于使用傳統(tǒng)的在動(dòng)態(tài)系統(tǒng)中使用代詞的標(biāo)準(zhǔn) “查詢字符串” 的方式,CodeIgniter 使用基于段的方法:
example.com/news/article/my_article
如果遵循模型-視圖-控制器模式,那么 URI 中的每一段通常表示下面的含義:
example.com/class/method/ID
URI 類(lèi) 和 URL 輔助函數(shù) 包含了一些函數(shù)可以讓你更容易的處理 URI 數(shù)據(jù)。此外,可以通過(guò) URI 路由 的方式進(jìn)行重定向你的 URL 從而使得程序更加靈活。
默認(rèn)情況,你的 URL 中會(huì)包含 index.php 文件:
example.com/index.php/news/article/my_article
如果你的服務(wù)器支持重寫(xiě) URL ,那么通過(guò) URL 重寫(xiě),我們可以輕易的去除這個(gè)文件。在不同的服務(wù)器中,處理方式各異,故而如下我們主要展示兩個(gè)最為通用的Web服務(wù)器。
Apache需要開(kāi)啟 mod_rewrite 擴(kuò)展。當(dāng)開(kāi)啟時(shí),我們可以使用一個(gè) .htaccess
文件以及一些簡(jiǎn)單的規(guī)則來(lái)實(shí)現(xiàn) URL 重寫(xiě)。如下為這個(gè)文件的一個(gè)樣例,其中使用了”否定“方法來(lái)排除某些不需要重定向的項(xiàng)目:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
在上面的例子中,除已存在的目錄和文件外,其他的 HTTP 請(qǐng)求都會(huì)經(jīng)過(guò)你的 index.php 文件。
注解
這些規(guī)則并不是對(duì)所有服務(wù)器配置都有效。
確保使用上面的規(guī)則時(shí),排除掉那些你希望能直接訪問(wèn)到的資源。
在NGINX中,我們可以定義一個(gè) location 塊并用 try_files
導(dǎo)向來(lái)取得如上文中 Apache 配置一樣的效果:
location / {
try_files $uri $uri/ /index.php/$args;
}
服務(wù)器將會(huì)首先尋找符合對(duì)應(yīng) URI 的文件或目錄(對(duì)于每個(gè)文件,通過(guò)根目錄和別名目錄來(lái)構(gòu)建其完整的路徑),然后再將其他的請(qǐng)求發(fā)送至 index.php 文件中。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: