0

我已经阅读了一堆关于这个主题的 stackoverflow 文章,例如:

CodeIgniter:对 SEO 友好的 URL

Codeigniter 路由有时不起作用

我发誓我已经正确设置了所有内容,但是在我输入路由并保存我的应用程序并尝试转到新 URL 甚至旧 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 文件中定义任何自定义路由,只是因为我无法让它正常工作。

当前控制器是“Search”,方法“map_view”被传递一个变量“county”。所以网址是

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

我想将其更改为

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

我之前写的所有其他内容仍然适用。再次感谢!

4

1 回答 1

2

您希望您的网址看起来像map/country

在你的routes.php

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

并确保您的控制器名称是Search.php.Also 类名称是Search扩展CI_Controller和方法名称map_view() (必须是公共函数)

查看CI 控制器指南以获取详细信息

于 2012-04-04T14:29:23.873 回答