2012-04-04 46 views
0

我已經讀了一堆關於這個話題上計算器的文章,如:爲什麼我的路線不能在CodeIgniter中工作?

CodeIgniter: SEO friendly URLs

Codeigniter routes not working sometimes

我發誓我已經正確地設置了一切,但我把路線後並保存我的應用程序,並嘗試去新的URL,甚至是舊的,他們都給我一個404錯誤。

我有一個目前看起來像這樣的擴展:

搜索/ map_view /縣

,我想是這樣的:

圖/縣

我在routes.php文件中寫了下面的重新路由,它給了我404錯誤:

$route['search/map_view/(:any)'] = 'map/$1'; 

以防萬一,我向後做,我也嘗試過這樣的:

$route['map/(:any)'] = 'search/map_view/$1'; 

這並沒有做任何事情,所以我推斷我這樣做不正確。值得注意的是,我確實有apache的mod_rewrite更改我的url,從中刪除index.php。不知道這有什麼用處,但我在其他帖子中已經注意到了這一點。

我應該改變某些地方的東西嗎?我假設如果我輸入以前的地址,我應該自動轉到新的地址?或者如果我輸入新地址,它應該自動工作?我不知道,這真的很煩人...

無論如何,我有很多關於這個東西的問題,但是我要從這裏開始,然後看看我能否在這裏找到其餘的答案在我修好這個之後。

編輯 - 我被要求包含更多信息。這裏是。

這裏的內容的.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 

目前我沒有在routes.php文件文件中定義的任何自定義路線,只是因爲我不能讓它正常工作。

當前控制器是「搜索」,方法「map_view」被傳遞給變量「縣」。所以,這個網址被

http://www.base_url.com/search/map_view/county 

我想改變這

http://www.base_url.com/map/county 

一切我以前寫別的仍然適用。再次感謝!

+0

您的路線需要匹配實際路線。 – 2012-04-04 14:25:04

回答

2

你想你的網址看起來像地圖/國家

在你routes.php

$route['map/(:any)'] = 'search/map_view/$1'; 
$route['map'] = 'search/map_view'; 

並確保您的控制器名稱爲Search.php。還有的類名是Search擴展CI_Controller和方法名map_view()(必須是公共功能)

CI Controller Guide爲詳細信息

+0

感謝您的回覆 - 我試過了 - 我仍然收到404錯誤。當前的控制器被稱爲「搜索」,它肯定會擴展CI_Controller。它現在工作的很好,但我試圖縮短我的URL的搜索引擎優化的目的。它目前訪問的方法稱爲「map_view」。如果我創建這條路線,我希望它改變「search/map_view /縣」爲「地圖/縣」,我是否需要一個名爲「Map」的新控制器?也許我只是不太清楚這個路由的工作原理 - 在我看來,這似乎是一種使URL不那麼難看的方法和更容易... – Jonathan 2012-04-04 18:33:29

+0

編輯你的主要帖子,幷包括你的'。htaccess','route.php'和'搜索控制器' – safarov 2012-04-04 18:36:22

+0

檢查http://codeigniter.com/user_guide/general/controllers.html – safarov 2012-04-04 18:51:34

相關問題