Сначала создайте файл redirect.php в папке контроллеров ( application / controllers ) и добавьте этот код в этот файл:
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Redirect extends CI_Controller
{
/**
* Method to redirect from an alias to a full URL
*/
public function index()
{
$alias = $this->uri->segment(1);
$this->db->select('url');
$query = $this->db->get_where('links', array('alias' => $alias), 1, 0);
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$this->load->helper('url');
redirect($row->url, 'refresh', 301);
}
}
else
{
echo "Sorry, alias '$alias' not found";
}
}
}
Затем создайте таблицу в вашей базе данных. Ваш стол должен быть таким:
CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`alias` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
`url` text CHARACTER SET utf8,
PRIMARY KEY (`id`),
UNIQUE KEY `alias` (`alias`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
После этого установите значение контроллера по умолчанию для класса перенаправления .
Откройте application / config / rout.php . Найдите $route['default_controller']
, затем установите redirect
в качестве значения этой переменной, например:
$route['default_controller'] = "redirect";
Тогда наслаждайся жизнью;)
EDIT:
Я забыл упомянуть URI-маршрутизацию в config/routes.php
для перенаправления:
$route[':any'] = "redirect/index/$1";