通过浏览我知道下面的代码将使我们用https网址重定向几页。以下是我分享的代码
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} controller/function
RewriteRule ^(.*)$ https://www.yourdomain.com/controller/function[R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteCond %{REQUEST_URI} controller/function
RewriteRule ^(.*)$ https://www.yourdomain.com/controller/function[R=301,L]
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
现在我的问题是有一个名为authenticate.php的控制器,在验证文件中有很多功能,如忘记密码,登录,注册等。我不要像上面的代码那样编写每个函数。我想要那个适用于单次拍摄中所有功能的htaccess代码。任何人都可以分享这个答案!!!!!!
答案 0 :(得分:0)
我没有为此目的使用htaccess。我在codeigniter中使用钩子,如in this blog post
所述您必须在$ ssl数组中设置您想要强制使用ssl的控制器,在$ partials数组中设置您不关心的控制器(您可能希望它们同时提供http和https,如博客中所述)邮件),其余的将被迫使用http。
对于您的特定模式,即控制器/功能,您可以将check_ssl()的功能更改为
function check_ssl()
{
$CI =& get_instance();
$class = $CI->router->fetch_class();
#method = $CI->router->fetch_method();
$ssl = array('controller/function');
$partial = array('login','registration');
if(in_array("$class/$method", $ssl)) {
force_ssl();
} else if(in_array($class,$partial)) {
return;
} else {
unforce_ssl();
}
}
如果你不想要偏袒,你可以把这个部分弄清楚。如果您不希望其余控制器仅使用http,则将unforce_ssl()替换为return;