В течение трёх месяцев я пытался найти элегантное решение для некоторых проблем связанных с безопасностью сайта. В том числе моменты связанные с протоколами — например переключение протокола с http:// на https:// для некоторых страниц сайта. Пришлось изрядно полазить по форумам.
Одним из решений является использование .htaccess файла и mod_rewrite для реврайтинга URL-ов. Но как показала практика , это решение не самое лучшее, так как через месяц Apache начал хандрить и всё порушилось, так что пришлось искать другой вариант решение проблемы.
И так , если вы используете CI , то зада очень проста в директории application/helpers вы создаёте новый helper ( если не знаете , как добавить Helper , читайте тут ) — например ssl_helper.php и записываете в него ниже следующий PHP код:
if (!function_exists('force_ssl'))
{
function 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());
}
}
}
function remove_ssl()
{
$CI =& get_instance();
$CI->config->config['base_url'] =
str_replace('https://', 'http://',
$CI->config->config['base_url']);
if ($_SERVER['SERVER_PORT'] != 80)
{
redirect($CI->uri->uri_string());
}
}
Читать дальше
Популярность: 3%