我已经尝试过使用 URL重写正常运行,但是我想知道是否还有另一个最佳解决方案
<rewrite>
<rules>
<rule name="HTTP to HTTPS " enabled="true" stop Processing="true">
<match URL="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" URL="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
这是我用于重定向的代码
答案 0 :(得分:0)
我使用PHP代码按如下方式处理重定向,并且可以在具有PHP和SSL的任何服务器上工作。您必须指定要使用的子域,但这是次要的,通常变化不大。只需将其放置在文件中,并将其包含在要重定向到HTTPS的任何页面的顶部即可。
if (!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' ||
$_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
{
//echo $_SERVER["HTTP_HOST"];
$subdomains = array('cp','rec','dsm','outback','live','pw');
$host = explode('.',$_SERVER['HTTP_HOST']);
if(in_array($host[0],$subdomains)) {
$redirect = 'https://' . str_replace('www.','',$_SERVER['HTTP_HOST']) . $_SERVER['REQUEST_URI'];
}
else {
$redirect = 'https://www.' . str_replace('www.','',$_SERVER['HTTP_HOST']) . $_SERVER['REQUEST_URI'];
}
echo $redirect;
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $redirect);
exit();
}