【发布时间】:2016-05-10 04:57:08
【问题描述】:
我有一个 CodeIgniter 应用程序,我只想强制管理员使用 HTTPS 连接,而单个用户必须使用 HTTP。
我在控制器文件夹中有另一个文件夹用于管理员的控制器,所以我尝试重定向每个请求,其中包含服务器名称或服务器 IP 地址以及 URL 中的管理员。像这样的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteRule !^/admin/(.*) - [C]
RewriteRule ^/(.*) http://www.example.com/$1 [QSA,L]
它应该将每个请求重定向到 http 站点,该站点不包含 URI 中的 admin 表达式,但无法正常工作且仍在使用 HTTPS。我的基本网址是:
$config['base_url'] = 'https://127.0.0.1';
我想要这个:
http://127.0.0.1/blog for users
https://127.0.0.1/admin/blog/addnew for admin
【问题讨论】:
-
为什么不允许非管理员用户使用 HTTPS?给非管理员额外的隐私也没有坏处。
-
我知道,我想构建一个易受攻击的应用程序,用户可以在其中练习 MitM 攻击,但我想保护管理员。
-
好主意。我认为这个问题可能会有所帮助 - stackoverflow.com/questions/8753987/…
-
让每个人都使用 HTTPS 并没有错,尽管您也可以在 CI 本身的核心控制器中简单地执行此操作。只要检查当前用户是否有管理员权限,如果没有,重定向到http,如果他有权限,重定向到https?
标签: php apache codeigniter