我希望访问http://www.domain.com/user/xyz.php的访问者被重定向到https://www.domain.com/user/xyz.php。
ie。如果他们在/user/里面的任何地方,他们就在安全的位置。所以必须重定向到https
我的问题不是具体如何实现这一点,而是哪种方法更好?
我的直觉告诉我应该使用.htaccess Rewrite rule
但我也考虑过:
<?php
if (!$_SERVER['HTTPS'] && strstr('user', $_SERVER['REQUEST_URI'])){
header('location:https://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
}
我想听听你对效率和安全以及其他考虑因素的看法。
htaccess可能更有效,特别是在内存使用方面。服务器不需要加载PHP, PHP也不需要解析和执行脚本。Apache也需要读取和应用htaccess中的配置,但这不会像PHP那样消耗那么多内存。
对于PHP,执行速度也取决于PHP的加载方式,例如是否使用APC缓存。
所以,一般来说,我认为htaccess应该更有效率,如果你真的想确保你的配置,我会做一个基准测试。
但总的来说:不要太担心它。选择看起来最好的。与具有实际功能的实际脚本执行相比,这应该不是一个瓶颈。