2011-04-03 64 views
1

Codeigniter路由規則似乎沒有拿起任何東西斜槓對我來說 - 這是默認行爲 - 我該如何防止它?Codeigniter路由與正斜槓

例子:

在routes.php文件:

$route['blog/read-post/(.+)'] = 'blog/lookup_blog_alias/$1'; 

在控制器:

function lookup_blog_alias($str){ 
print $str; 
} 

如果我輸入一個網址,如:

http://localhost/blog/read-post/a-b-c/12 

我只得到當我想要時,「abc」部分ke是「a-b-c/12」。

感謝您的任何幫助。

回答

2

沒有,默認情況下,您的需求將只如果你改變了路線URL &控制器方法是這樣的工作: -

$route['blog/read-post/(.+)/(.+)'] = 'blog/lookup_blog_alias/$1/$2'; 

// Controller Method 
function lookup_blog_alias($str1, $str2){ 
    print $str1.'/'.$str2; 
} 

您需要按照笨User Guide,它的基礎知識說CI是用字符「/」(正斜槓)標記字符串限制的慣例。它只是意味着在向前斜線兩者之間,下面的事情可以/可以在一般MVC Framework考慮: -

  • 模塊名稱
  • 控制器(類)名稱
  • 控制器方法名稱
  • (1)查詢字符串的指數
  • (1)查詢字符串的值
  • (二)查詢字符串的指數
  • (二)查詢字符串的弗吉尼亞州略
  • ...(查詢字符串的索引/值對)

然而,CI中的「routes.php」頁,邏輯可以通過憑藉.htaccess中的改變。仍然上述概念直接&,所以遵循正常的MVC架構是明智的。

希望它有幫助。

+0

謝謝。這仍然很煩人,但至少我知道爲什麼現在很煩人:) – CJD 2011-04-04 17:00:47