Javascript 为多个域将http通信发送到HTTPS

Javascript 为多个域将http通信发送到HTTPS,javascript,php,Javascript,Php,我有一个index.php文件将http流量重定向到服务器的https端。其中包含以下代码: <?php echo "<script> location.href='https://domain1.com'; </script>"; exit; ?> 如何让脚本重定向到各个域的https,而不是总是自动路由到domain1.com 谢谢 更新1:适用于询问文件夹的用户。http站点是/var/www/html,https站点是

我有一个
index.php
文件将
http
流量重定向到服务器的
https
端。其中包含以下代码:

<?php
        echo "<script> location.href='https://domain1.com'; </script>";
        exit;
?>
如何让脚本重定向到各个域的
https
,而不是总是自动路由到
domain1.com

谢谢


更新1:适用于询问文件夹的用户。
http
站点是
/var/www/html
https
站点是
/var/www/vhosts/domain1.com/
。第二个是真实的站点。

如果您已经在Apache的httpd-vhosts.conf文件中配置了域,那么您只需将端口80上的
设置为重定向到相关的https域

例如:

<VirtualHost *:80>
ServerName www.domain1.com
Redirect / https://www.domain1.com
</VirtualHost>

<VirtualHost _default_:443>
ServerName www.domain1.com
DocumentRoot /var/www/vhosts/domain1.com

SSLEngine On
... and so on ...
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain2.com
Redirect / https://www.domain2.com
</VirtualHost>

<VirtualHost _default_:443>
ServerName www.domain2.com
DocumentRoot /var/www/vhosts/domain2.com

SSLEngine On
... and so on ...
</VirtualHost>

如果所有其他操作都失败,您可以在PHP中使用
header()
函数通过http头重定向来完成此操作,如下所示:

<?php
if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off') {
    header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    die();
}

您可以访问FTP吗?当您使用Apache时,也许可以使用.htaccess来实现这一点。这不会导致永无止境的循环吗?idk。我在一个网站上找到了这个,效果很好。我认为区别在于http是/var/www/html,https是/var/www/vhost/site。html文件夹实际上只是一个占位符。在服务器上使用
.htaccess
会更干净。下一个最好的方法是通过检查$\u服务器全局中的协议来执行php重定向。最糟糕的方法是使用JavaScription,我认为你不需要在你的应用程序中这样做。在服务器级别(.htaccess,如果是Apache等)或者更高级别上,通过Cloudflare之类的服务进行免费访问。第三个服务非常有效(必须在标题行中将http:更改为https:)。我意识到另外两个更好……我将开始考虑如何让它们发挥作用。直到那时。谢谢@arcee123-呵呵,故意输入错误(*咳嗽*是的)-修复。
RewriteEngine On
RewriteCond %{HTTPS} Off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<?php
if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off') {
    header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    die();
}