【发布时间】:2013-03-21 05:26:12
【问题描述】:
我有一个现有的网站,上面有大量对http://domain.com 的引用。我们想在页面上强制执行 https,所以我添加了一个简单的代码 sn -p:
if($_SERVER["HTTPS"] != "on") {
die(header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]));
exit(); // to ensure the script stops here, just in case
}
这行得通,除了很多文件在操作中都有带有 http 的自引用表单。例如,在 page.php 上可能有:
<form action="http://domain.com/page.php" method="post">
<input type="text" name="sample" />
<input type="submit" value="Next" />
</form>
我有什么方法可以在不破坏所有这些形式的情况下从上面强制执行此重定向 sn-p? 目标是避免手动更新 100 多个文件中的每一个来进行繁琐的查找/替换“http/https”的单步执行。
【问题讨论】:
-
任何合适的代码编辑器都有“在集合文件中查找和替换”功能,可以在一分钟内找到所有文件匹配条件并将
http://domain.com替换为https://domain.com。以 Notepad++ 为例。 -
是的,这就是我所说的繁琐的“查找/替换”的意思。我不能将它应用于交换
http://domain和https://domain,因为很多时候域被提取(即:http://<?php echo $DOMAIN; ?>)。多亏了以前的开发人员,这真是一团糟,我只是希望通过避免这种乏味的查找/替换来节省客户一些时间。好像不行。
标签: php forms http redirect persist