2016-09-02 159 views
0

你好我有這個網址127.0.0.1/link/index/25,我的默認控制器它的鏈接,當我使用127.0.0.1我可以看到鏈接控制器的索引,但是當我傳遞一個參數在像127.0.0.1/25網址無法正常工作,我必須使用完整的網址,我怎麼能改善它?Codeigniter路由不起作用

我嘗試在route.php添加靜態路由,但它好好嘗試一下工作

$route['index/(:num)'] = 'link/index/$1'; 
+1

'127.0.0。1/25'應該是'127.0.0.1/index/25'或這個'$ route ['index /(:num)'] ='link/index/$ 1';'應該是'$ route ['(:num )''='link/index/$ 1';' – devpro

+0

設置旅遊基地網址'$ config ['base_url'] ='http:// localhost/yourproject /';'如配置中所述'警告:您必須設置此價值!' – user4419336

回答

1

如果你想要一個像127.0.0.1/25網址比你的路線應該是:

$route['(:num)'] = 'link/index/$1'; 

或者,如果你想使用路線相同$route['index/(:num)'] = 'link/index/$1';,比你的鏈接應該是:

127.0.0.1/index/25 

但值得注意的是,這條路線$route['(:num)']將改變所有其它的URL,你必須需要按照同樣使用的是剛剛更改URL爲

127.0.0.1/index/25 

旁註使用路線:其他的解決方案是htaccess的。

1

您必須使用規則來匹配所需表單中的網址。在你的情況,這將是:

$route['(:num)'] = 'link/index/$1'; 

這就是說,你可能想要使用一些前綴的網址,而不是直接的數字ID。如果您的網站增長,它可能會在未來幫助您。像http://127.0.0.1/link/25和這個路線是

$route['link/(:num)'] = 'link/index/$1'; 
+0

感謝它的工作 – htmlpower

1

你不能有一個路線,不說明路線是什麼。 CI如何知道它是否應該是控制器或具有參數的默認控制器。

當你轉到127.0.0.1時,你會得到默認的鏈接控制器。要鏈接到帶有參數的控制器,您需要使用127.0.0.1/link/index/25

至於整理網址,有不同的方法可以解決這個問題。你想讓你的網址看起來像什麼?首先,將您的方法從索引更改爲mywebpage,並更改路由配置文件中的默認控制器。

或者您可以使用路由來路由更漂亮的URL,或者您可以使用htaccess。但是你無法將參數傳遞給未命名的控制器。出於同樣的原因,您的默認控制器不能位於子文件夾中。

希望幫助,

保羅