在php中使用meta重定向,但文件在另一个文件夹中

问题描述 投票:0回答:2

我这里有一个小问题,我一直在寻找但没有找到解决方案。

我想在用户登录后重定向我的页面,但我会将他们登录到安全服务器。我在 apache 上使用虚拟主机,所以一个是 http 页面,另一个是用于安全加密连接的 https 服务器。

在我的login.php 上我有这个

if( $usr->userLogin() ) {
    echo "Welcome, now you can continue to our secure webpage. You will be automatically redirected in 5 seconds.....";
    echo "<meta http-equiv=Refresh content=5;url=index.php>";
} else {
    echo "Incorrect Username/Password, please try again.....";
    echo "You will be automatically redirected in 5 seconds.....";
    echo "<meta http-equiv=Refresh content=5;url=login.php?id=1>";
}}

但实际上我想要的是,我不想重定向到/var/www/http上的index.php文件,而是想重定向到/var/www/https/目录上的index.php

这是我的问题,我已经尝试了很多东西,但那条线不会像这样

echo "<meta http-equiv=Refresh content=5;url=index.php>";

还有一个问题,我正在使用VPN连接到服务器,所以我无法像

 echo "<meta http-equiv=Refresh content=5;url=https://www.url.com>";
那样连接 我无法访问 DNS 并解析名称,然后获取 IP,就像它是 VPN 一样,地址是内部的,我无法输入任何外部地址,因为问题将持续存在,这是我真正的问题,有什么办法可以做到这一点内部?

php http-redirect authentication echo meta
2个回答
0
投票

使用 PHP 标头:

header("location: <url>");

像这样:

header("location: https://<etc>"); // redirect to different page but only if no other output has been generated
exit; // prevents further execution of code

请注意,您无法重定向到文件路径,而只能重定向到 url。因此,如果您想提供 HTTPS 页面,您的网络服务器必须通过域名/url 提供服务。因此,您需要使用 SSL 证书并配置您的网络服务器以从 https 目录中提供 https(端口 443)请求。

我希望这是有道理的;)

如果您想继续使用 html 重定向(也许您在 html 中使用重定向或者无法使用 php 重定向):

echo "<meta http-equiv=Refresh content=5;url=https://<domain>/login.php?id=1>";

看到您对有关您的 VPS 的其他答案的评论。您仍然需要配置服务器来处理对 443 (ssl) 端口的请求。即使您的服务器具有动态 IP 或者您通过 VPN 连接,您也可以随时编辑 vhosts 文件以将某个(不存在)域指向某个 IP,即使它是本地、网络或 VPN 隧道 IP。此时您的主要关注点是正确配置您的服务器。


0
投票

提供 https 索引文件的完整 url:

echo "<meta http-equiv=Refresh content=5;url=https://YourHTTPSURL.com/index.php>";

编辑:

正如评论中所讨论的,您可以使用如下 URL:

https://192.168.1.1:443/index.php
© www.soinside.com 2019 - 2024. All rights reserved.