codeigniter,在特定页面上强制ssl

codeigniter,在特定页面上强制ssl,codeigniter,ssl,https,Codeigniter,Ssl,Https,我很难将https(ssl)强制到CodeIgniter框架上的特定页面。我尝试了很多方法,但都不管用。对我来说唯一有效的方法是将$config['base_url']站点链接更改为以https开头,而不是http。结果是所有链接都设置为ssl(整个站点),这毫无意义,因为我不需要在任何地方都使用ssl。我在登录页面中使用了一些php代码,但这带来了一些麻烦,所以我放弃了 我想知道这是否是一个好方法如何做到这一点,有什么想法吗 谢谢,您需要在.htaccess上添加条件,以使SSL端口仅适用于选

我很难将https(ssl)强制到CodeIgniter框架上的特定页面。我尝试了很多方法,但都不管用。对我来说唯一有效的方法是将$config['base_url']站点链接更改为以https开头,而不是http。结果是所有链接都设置为ssl(整个站点),这毫无意义,因为我不需要在任何地方都使用ssl。我在登录页面中使用了一些php代码,但这带来了一些麻烦,所以我放弃了

我想知道这是否是一个好方法如何做到这一点,有什么想法吗


谢谢,

您需要在
.htaccess
上添加条件,以使SSL端口仅适用于选定的URL

下面是一个例子,如何做

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] 
注意:您的
基本url
必须在配置文件中设置为
“/”

有关更多信息,请查看

谢谢您的回复。顺便问一下,你确定这个代码有效吗?我试过了,但我的整个网站都不起作用。浏览器会显示一条错误消息,说明我的网站已关闭或正在维护。。。有什么想法吗?@Digitalsite取决于您想如何使用核心控制器和助手。您可以检测端口和转发,谢谢。这非常有帮助。从您发布的链接,第一篇讨论帖子:“我认为这不是一个完整的解决方案。如果您想通过SSL提交敏感信息(例如密码),只需使用此htaccess重定向,就会看到信息首先以未加密的请求发送,然后在重定向时再次通过SSL发送。”@qwertzman是的,但是,您提交帖子的表单将通过SSL。例如,付款页面,当您单击付款页面时,它将重定向到加密付款页面,您将在加密页面上进行提交。