codeigniter中的URL加密
我想在codeigniter中加密url 我的最终目标是加密域后的所有内容。 example.com/controller/function/itemid 到 example.com/sdfsdfsff/sdafaergdfsd/dfesdewrefcodeigniter中的URL加密,codeigniter,Codeigniter,我想在codeigniter中加密url 我的最终目标是加密域后的所有内容。 example.com/controller/function/itemid 到 example.com/sdfsdfsff/sdafaergdfsd/dfesdewref 我可以在我的控制器中使用ci的“加密”库来加密/解密itemid,但是是否有其他方法来加密url中的所有内容?使用钩子的替代方法可能只是覆盖ci\u URI和ci\u Config类。将URI段加载到段数组中时,它应该解密它们(可能在\u set\
我可以在我的控制器中使用ci的“加密”库来加密/解密itemid,但是是否有其他方法来加密url中的所有内容?使用钩子的替代方法可能只是覆盖
ci\u URI
和ci\u Config
类。将URI段加载到段数组中时,它应该解密它们(可能在\u set\u URI\u string()
方法中)。然后,它应该加密被重写的CI\u Config
类中的段(特别是\u uri\u string()
方法)
这里有一个(未经测试的)样品供您欣赏:
<?php
// application/core/MY_URI.php
class MY_URI extends CI_URI {
function _set_uri_string($str)
{
parent::_set_uri_string($str);
$CI =& get_instance();
$CI->load->library('encrypt');
$parts = explode('/', $this->uri_string);
foreach ($parts as &$part)
{
if ($part) $part = $CI->encrypt->decode($part);
}
$this->uri_string = implode('/', $parts);
}
}
// application/core/MY_Config.php
class MY_Config extends CI_Config {
protected function _uri_string($uri)
{
if ( !is_array($uri))
{
$uri = explode('/', $uri);
}
$CI =& get_instance();
$CI->load->library('encrypt');
foreach ($uri as &$part)
{
if ($part) $part = $CI->encrypt->encode($part);
}
return parent::_uri_string($uri);
}
}
你可能想看看钩子。