我在一个电子商务网站的 header.php 文件中发现了这一点。在 .htaccess 文件中完成这个操作是否更好?
另外,任何被困在标题语句中的帖子参数会发生什么情况?
// flip between secure and non-secure pages
$uri = $_SERVER['REQUEST_URI'];
// move to secure SSL pages if required
if (substr($uri,1,12) == "registration")
{
if($_SERVER['SERVER_PORT'] != 443) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
}
// otherwise us regular non-SSL pages
else
{
if($_SERVER['SERVER_PORT'] == 443) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
}
答案1
是的,这可以在 .htaccess 文件中完成,例如使用 mod_rewrite。但何必呢?应用程序编写者可能不想假设特定的 Web 服务器或增加服务器配置的复杂性,因此在应用程序级别处理它。
我相信 POST 参数会在翻译中丢失,但必须假设这是应用程序编写者考虑到的事情。