I would like to know the simplest solution to changing the underscores of my codeigniter urls to dashes, for seo reasons.
My controllers look like:
publi
It really depends on your intention. If you just want to change only one page, then devrooms' solution is the perfect one indeed:
$route['request-guide'] = "request_guide";
But if you want to make this your website's default behavior you should extend your core Router class like this (source: [Using hyphens instead of underscores in CodeIgniter])
Insert this code in it:
<?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));
}
}
?>
UPDATE (Oct 26, 2015): There's a better way to do this in CodeIgniter 3, as @Thomas Wood mentioned:
$route['translate_uri_dashes'] = TRUE;
$route['request-guide'] = "request_guide";