hai*_*ets 20 php codeigniter url-rewriting
由于原因,我想知道将codeigniter url的下划线更改为短划线的最简单的解决方案.
我的控制器看起来像:
public function request_guide() {
...Load view etc...
}
Run Code Online (Sandbox Code Playgroud)
所以要浏览到这个页面,我将不得不去:
www.domain.com/request_guide
Run Code Online (Sandbox Code Playgroud)
但是我想要更友好,并使用破折号而不是下划线,如下所示:
www.domain.com/request-guide
Run Code Online (Sandbox Code Playgroud)
我认为codeigniter函数需要下划线(可能是错误的).
在之前的项目中,我只使用了mod_rewrite,但我相信这些操作可以使用路由来执行.
我用最简单的方法重写url替换下划线的最简单方法是什么?
Sta*_*tan 48
这真的取决于你的意图.如果您只想更改一个页面,那么开发人员的解决方案确实是完美的:
$route['request-guide'] = "request_guide";
Run Code Online (Sandbox Code Playgroud)
但是如果你想把它作为你网站的默认行为,你应该像这样扩展你的核心路由器类(来源:[在CodeIgniter中使用连字符而不是下划线])
在其中插入此代码:
<?php
defined('BASEPATH') || exit('No direct script access allowed');
class MY_Router extends CI_Router {
function _set_request ($seg = array())
{
// The str_replace() below goes through all our segments
// and replaces the hyphens with underscores making it
// possible to use hyphens in controllers, folder names and
// function names
parent::_set_request(str_replace('-', '_', $seg));
}
}
?>
Run Code Online (Sandbox Code Playgroud)更新(2015年10月26日):在CodeIgniter 3中有更好的方法,正如@Thomas Wood所说:
$route['translate_uri_dashes'] = TRUE;
Run Code Online (Sandbox Code Playgroud)
dev*_*oms 28
找到的路由配置
config/routes.php
Run Code Online (Sandbox Code Playgroud)
是你的朋友.
一个简单的
$route['request-guide'] = "request_guide" ;
Run Code Online (Sandbox Code Playgroud)
会为你做这件事.
打开application/config/routes.php并进行更改
$route['translate_uri_dashes'] = TRUE;
Run Code Online (Sandbox Code Playgroud)
那是你需要做的.
现在,当您访问www.domain.com/ request-guide时,它将实例化request_guide控制器.
它适用于名称中包含_(下划线)的所有控制器.
归档时间: |
|
查看次数: |
22485 次 |
最近记录: |