如何在页面加载时将一个HTML页面重定向到另一个页面

1824

在加载页面时,是否可以设置一个基本的HTML页面以重定向到另一个页面?


2
使用.htaccess或IIS等同工具进行服务器端重定向。这样,即使您的物理页面消失,重定向仍将起作用。 - flith
4
那个 insider.zone 工具把我的重定向链接都变成了小写字母,导致出现了404错误页面。另外,也没有办法联系到制作这个页面的人。 - Dan Jacobson
24个回答

11

请将以下代码放置在HTML代码的<HEAD>和</HEAD>标签之间:

<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">

以上的HTML重定向代码将立即将您的访问者重定向到另一个网页。 content="0; 可以更改为您希望浏览器在重定向之前等待的秒数。


9

我使用一个脚本,将用户从index.html重定向到相对路径的登录页面

<html>
  <head>
    <title>index.html</title>
  </head>
  <body onload="document.getElementById('lnkhome').click();">
    <a href="/Pages/Login.aspx" id="lnkhome">Go to Login Page</a>
  </body>
</html>

1
以上方法中的重定向URL可以是相对路径。例如:您想通过网站根目录中的index.html重定向到登录页面或任何相对页面,无需知道您的域名。但是当您设置window.location.href="xxx";时,必须知道域名。 - Zolfaghari

9

将下面的代码放置在 <head> 区块中:

<meta http-equiv="refresh" content="0; url=http://address/">

9

在使用jQuery Mobile应用程序时,我遇到了一个问题,有时我的Meta头标签无法正确实现重定向(jQuery Mobile不会自动读取每个页面的头标签,因此将JavaScript放在那里也是无效的,除非将其包装在复杂性中)。在这种情况下,我发现最简单的解决方案是直接将JavaScript重定向放入文档的正文中,如下所示:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="refresh" content="0;url=myURL" />
    </head>

    <body>
        <p>You are not logged in!</p>
        <script language="javascript">
            window.location = "myURL";
        </script>
    </body>
</html>

这在我的所有情况下似乎都有效。


9

HTTP状态码301或302可以自动重定向。

对于PHP:

<?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.redirect-url.com");
?>

8
这不是来自HTML页面的重定向。 - bugmenot123

8

对于所有类型的页面,最简单的方法就是在头部添加一个meta标签:

<html>
    <head>
        ...
        <meta HTTP-EQUIV="REFRESH" content="seconds; url=your.full.url/path/filename">
        ...
    </head>
    <body>
        Don't put much content, just some text and an anchor.
        Actually, you will be redirected in N seconds (as specified in content attribute).
        That's all.
        ...
    </body>
</html>

7
您应该使用JavaScript。将以下代码放入您的头标签中:
<script type="text/javascript">
 window.location.assign("http://www.example.com")
</script>

6

11
这句话的意思是:问题要求提供一个基本的 .html 页面。我猜测提问者不能修改 .htaccess 文件或类似的文件(例如使用 Github Pages 或其他类似有限制的主机)。在这种情况下是无法使用 PHP 的。 - Nicolas Raoul
1
我认为由PHP(预处理器)生成的东西是“基本的HTML页面”。问题中没有提到文件类型。 - Edward
2
哎呀,为什么状态码是303?我以前从来没见过。而且你为什么要重定向到一个电子邮件地址(一个无效的URL)呢? - Simon East
1
@SimonEast 我也不知道,尽管那已经是8年前的事情了,但我并没有记得输入那些值!无论如何,问题已经解决了。 - Edward

6
只需要使用body标签的onload事件即可:
<body onload="window.location = 'http://example.com/'">

2
请注意,这仅在启用JavaScript时才有效。如果您需要支持没有JavaScript的客户端,请改用“meta”标签方法。 - Andy Braham

5
据我所了解,到目前为止我看到的所有方法都似乎在历史记录中添加了旧位置。为了重定向页面但不将旧位置添加到历史记录中,我使用了replace方法:
<script>
    window.location.replace("http://example.com");
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接