簡體   English   中英

codeigniter中的routes.php是什么

[英]What is routes.php in codeigniter

codeigniterroutes.php的功能是什么?

我的老師接受過關於它的教導,並說如果你不使用例如以下的路線你的觀點將不起作用:

$route['blabla'] = ['blabla/blabla']; 以及它的一切!

但對我來說,它沒有使用任何路線。 我不知道為什么要使用路線。 這只是浪費時間。 誰能解釋一下?

在codeigniter中,PHP文件以不同的方式提供,而不是直接從瀏覽器訪問PHP文件。 此過程稱為路由

我們的代碼無需重寫 routes.php中的url即可運行。

我們都希望以更方便的方式顯示我們的網頁,以便它對訪問者(當然也包括搜索引擎)更有意義。 例如,只需通過檢查瀏覽器地址欄中的URL,即可簡要了解頁面包含的內容。 如果我們保持這一點,就像服務器腳本(PHP,Asp.NET等)可以理解的那樣,如下所示,不應該實現我們的目標:

http://yourdomain.com?p=1
http://yourdomain.com?p=2
http://yourdomain.com?w=30
http://yourdomain.com?z=234
//etc......

從上面的鏈接中,無法理解這些頁面的內容。 現在,如果它如下所示:

http://codesamplez.com/database/codeigniter-activerecord
http://codesamplez.com/programming/regular-expressions-in-php

這些更有意義,我們可以從看到URL中得到一個簡單的想法。 此外,與早期的網址相比,搜索引擎提供了更多的價值,這就是為什么它們被稱為“搜索引擎友好網址”。 所以,無論你選擇什么原因,總是更好地使用SEO友好的URL。 好的,現在,我們決定讓我們的網站更加SE /訪客友好,並希望使用這些網址。 現在,我們應該如何開發應用程序以將此URL映射到原始請求處理程序腳本?

Url Rewriting / Routing實際上是將這個seo友好URL轉換為服務器代碼可以輕松理解的格式/將請求驅動到相應的請求處理程序腳本的技術。

CodeIgniter具有用戶友好的URI路由系統,因此您可以輕松地重新路由URL。 通常,URL字符串與其對應的控制器類/方法之間存在一對一的關系。 URI中的段通常遵循這種模式 -

your-domain.com/class/method/id/
  • 一個段表示應該調用的控制器類。
  • 第二個段表示應該調用的類函數或方法。
  • 第三個和任何其他段表示ID和將傳遞給控制器​​的任何變量。

在某些情況下,您可能希望更改此默認路由機制。 CodeIgniter提供了一些工具,您可以通過它來設置自己的路由規則。

有一個特定的文件,您可以處理所有這些。 該文件位於application / config / routes.php(您已經知道)。 您將找到一個名為$ route的數組,您可以在其中自定義路由規則。 $ route數組中的鍵將決定路由的內容,值將決定路由的位置。 CodeIgniter中有三條保留路由。

$路線[ 'default_controller']

如果URI不包含數據,則此路由指示應加載哪個控制器類,這是人們加載根URL時的情況。 建議您使用默認路由,否則將顯示404頁面。 我們可以在這里設置網站的主頁,以便默認加載。

$路線[ '404_override']

此路由指示如果找不到請求的控制器,應加載哪個控制器類。 它將覆蓋默認的404錯誤頁面。 它不會影響the show_404()函數,它將繼續加載application/views/errors/error_404.php.的默認error_404.php文件application/views/errors/error_404.php.

$路線[ 'translate_uri_dashes']

布爾值顯而易見,這不是一條路線。 此選項使您可以使用控制器和方法URI段中的下划線自動替換短划線(' - '),從而在需要時節省其他路徑條目。 這是必需的,因為破折號不是有效的類或方法名稱字符,如果您嘗試使用它,將導致致命錯誤。

觀看此視頻,了解基本概念

請參閱此文檔

在CI代碼中將運行沒有routes.php。 routes.php用於自定義url / routes,就像你有url一樣

example.com/pages/about_us

其中“pages”是你的控制器,“about_us”是該控制器中的方法,如果你想顯示沒有像example.com/about_us這樣的控制器的url,那么你需要以這種方式使用routes.php

$route['about_us'] = ['pages/about_us'];

在codeigniter中路由一個主要功能,用於用戶友好的URL和SEO友好的谷歌搜索。

這是什么意思:如果有任何用戶搜索了您網站上的任何產品,那么URL將是www.domain.in/categalog/Deskstop-Intel-124343現在在這種情況下,網址是用戶友好的如何解釋它在路由中維護。

每次url被命中控制流到routes和從routescontroller

$route['product/(:any)'] = 'catalog/product_lookup';

現在,categorieslog / product_lookup被解釋為產品/任何意味着有一個控制器Product接受Id /文本作為輸入。

這就像根據我們的要求制作用戶定義的URL一樣簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM