codeigniter,强制特定页面上的ssl

时间:2012-04-02 07:17:16

标签: codeigniter ssl https

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

我想知道这是否是一个很好的方法,如何做到这一点,任何想法?

谢谢,

1 个答案:

答案 0 :(得分:4)

您需要在.htaccess上添加条件才能使SSL端口仅适用于选定的网址。

以下是示例,该怎么做

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] 

P.S:您的base_url必须在配置文件中设置为“/”。 有关详细信息,请查看http://codeigniter.com/wiki/SSL_Handling