2012-04-04 25 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

相关问题