标签:
<code>//启动hooks //app/config/config.php $config[‘enable_hooks‘] = TRUE; //hooks配置 ///app/config/hooks.php $hook[‘post_controller_constructor‘][] = array( ‘function‘ => ‘check_ssl‘, ‘filename‘ => ‘ssl.php‘, ‘filepath‘ => ‘hooks‘, ); //插件编写 //app/hooks/ssl.php function check_ssl(){ $CI =& get_instance(); $class = $CI->router->fetch_class(); $method = $CI->router->fetch_method(); $ssl = $CI->config->item(‘ssl_class_method‘); $partial = $CI->config->item(‘no_ssl_class_method‘); if(in_array($class.‘/‘.$method,$ssl)){ //force_ssl(); $CI =&get_instance(); $CI->config->config[‘base_url‘] = str_replace(‘http://‘, ‘https://‘, $CI->config->config[‘base_url‘]); if ($_SERVER[‘SERVER_PORT‘] != 443) redirect($CI->uri->uri_string()); } else if(in_array($class.‘/‘.$method,$partial)) { return; } else{ //unforce_ssl $CI =&get_instance(); $CI->config->config[‘base_url‘] = str_replace(‘https://‘, ‘http://‘, $CI->config->config[‘base_url‘]); if ($_SERVER[‘SERVER_PORT‘] == 443) redirect($CI->uri->uri_string()); } } //config 配置需要使用https的 class method //app/config/config.php $config[‘ssl_class_method‘] = array( ‘U_class/A_method‘, ‘V_class/B_method‘, ‘W_class/C_method‘, ‘X_class/D_method‘, ); //强制使用ssl $config[‘no_ssl_class_method‘] = array(); //强制不使用ssl </code>
标签:
原文地址:http://www.cnblogs.com/kenshinobiy/p/4415058.html