我已经阅读了关于此主题的一堆关于stackoverflow的文章,例如:
CodeIgniter: SEO friendly URLs
Codeigniter routes not working sometimes
我发誓我已经正确设置了所有内容,但在我将路由放入并保存我的应用程序并尝试转到新网址,甚至是旧网址后,他们都给了我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”被传递给变量“county”。所以网址是
http://www.base_url.com/search/map_view/county
我想将此更改为
http://www.base_url.com/map/county
我之前写的其他所有内容仍然适用。再次感谢!
答案 0 :(得分:2)
您希望自己的网址看起来像地图/国家/地区。
在routes.php
$route['map/(:any)'] = 'search/map_view/$1';
$route['map'] = 'search/map_view';
并确保您的控制器名称为Search.php
。类名称为Search
,其扩展名为CI_Controller
,方法名称为map_view()
(必须为公共函数)< / em>的
查看CI Controller Guide了解详细信息