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