2009-11-27 68 views
0

當URI中存在查詢(後面的內容?)時,我遇到了一個CodeIgniter路由問題。我知道在CI中用路由替換查詢是一種好習慣,但我在預先製作的消息板中導入,已經完成了所有查詢。這是我的路線:涉及查詢的Codeigniter路由的問題

$ route ['messageboard /:any'] =「messageboard/index」;

在這種情況下,任何引用的腳本名稱。所以,如果它是messageboard/admin.php,我已經加載了一個視圖,加載了我的預製的消息板的腳本「admin.php」。如果我做了messageboard/admin.php,它工作得很好。它做得很好,如果我做的messageboard/admin.php ?.但是,如果我在查詢中添加了一個參數,那麼這個路徑將不會正確地將用戶發送到信息板控制器,而是將它們發送到404.有沒有人有關於如何使其工作的任何想法?我會永遠感激。謝謝!

回答

1

好球員,我解決了這個問題。我需要改變三件事。第一個是mtvee的建議,它可以讓它讀取查詢字符串。第二個你想改變配置文件中的$ config ['permitted_uri_chars']以包含一個等號,因爲它開始禁用,所有的查詢字符串將是for?a = 34或類似的東西那。第三是你需要去$ config ['uri_protocol']並將其從AUTO更改爲PATH_INFO。一旦我做了這些,它的工作。

+0

在CI 2.0中所有需要做的是將$ config ['uri_protocol']從AUTO更改爲PATH_INFO – Sofia 2011-02-27 23:48:38

0

我敢肯定的語法是:

$route['messageboard/(:any)'] = "messageboard/index"; //<-- notice brackets 

,而不是

$route['messageboard/:any'] = "messageboard/index"; 
+0

我認爲他們做同樣的事情。我嘗試過這個。雖然謝謝! – Ethan 2009-11-28 02:37:52

+0

學習新的東西每天:-) – ekhaled 2009-11-28 03:10:53