2017-06-13 64 views
1

我想重寫URL中codeignitor不同的頁面相同的URL在codeignitor

對於產品的網頁我想從給定的URL更改

www.example.com/services/service-name 

TO

www.example.com/service-name 

的重寫URL對於我想從給定網址更改的服務頁面

www.example.com/products/product-name 

TO

www.example.com/product-name 

但鏈接不工作。它不區分產品和服務網址。它感到困惑的是,url是否與產品或服務有關。應該提取哪個特定頁面。? 請指導我。 謝謝

+0

「routes.php」中有什麼? – Tpojka

+0

目前這是寫在路線 $ route ['(:any)'] \t ='controller-name/services/$ 1'; $ route ['products /(:any)'] \t ='controller-name/products/$ 1'; 當我改變「$ route ['products /(:any)'] \t ='controller-name/products/$ 1';」到 $ route ['(:any)'] \t ='controller-name/products/$ 1'; 它給錯誤... – kalikd

回答

0

首先,通配符路由必須在年底

$route['some-route'] = 'ctrl/m/$1'; 
$route['some-other-route'] = 'ctrl/m2/$1'; 
... 
$route['(:any)'] = 'ctrl/m3/$1'; 

because

路線將在它們被定義的順序運行。較高的路線總是優先於較低的路線。

其次,在路線有不同之處去,因爲

  1. 如果沒有段如/services//products/你需要注意在插入時不要複製不同區域之間的名字好辦法(即服務,產品)。
  2. 即使您在代碼中檢查了插入時的兩個表,以確保您沒有在服務和產品之間重複名稱,但每次您仍需要查詢兩個表時,您需要服務或產品。

路由以某種方式工作,從URL獲取值,應用程序將使用該值執行某些操作。如果您有路線

https://www.example.com/making-powerplant 

應用程序不知道生產動力裝置是服務還是產品。因此,如果您對插入數據或插入數據或插入making-powerplant以避免將服務和產品的標題翻倍,現在您的應用程序應查詢兩個表。首先它應該查詢服務表以查看是否有像那樣的標題。如果在服務表中找不到標題,則應用程序需要查詢產品表。這將是詳細的應用程序和代碼設計,因爲在大多數情況下,您正在進行查詢,您不需要。 但這只是你從一個URI段檢查兩個表或兩個源的方法。 我會堅持/services/service-1/products/product-1

相關問題