从HTML页面redirect

是否有可能build立一个基本的HTML页面redirect到另一个页面加载?

尝试使用:

 <meta http-equiv="refresh" content="0; url=http://example.com/" /> 

注意:将其放在头部。

另外对于旧版本的浏览器,如果添加一个快速链接以防止刷新不正确:

<p><a href="http://example.com/">Redirect</a></p>

会显示为

redirect

这仍然可以让你得到一个额外的点击你要去的地方。

我会同时使用JavaScript代码 ,并会有一个链接,以防万一。 此外,我认为这是一个好主意,刷新率设置为1偶尔的情况下,浏览器忽略0值元刷新。

 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="1; url=http://example.com"> <script type="text/javascript"> window.location.href = "http://example.com" </script> <title>Page Redirection</title> </head> <body> <!-- Note: don't tell people to `click` the link, just tell them that it is a link. --> If you are not redirected automatically, follow this <a href='http://example.com'>link to example</a>. </body> </html> 

为了完整起见,我认为最好的办法是,如果可能的话,就是使用服务器redirect,所以发送301状态码。 这很容易通过使用Apache的 .htaccess文件,或通过使用WordPress的插件 。 我相信也有所有主要的内容pipe理系统的插件。 另外,如果你的服务器上已经安装了cPanel,那么cPanel对于301redirect的configuration非常简单。

JavaScript的

 <script language="javascript"> window.location.href = "http://example.com" </script> 

元标签

 <meta http-equiv="refresh" content="0;url=http://example.com"> 

还会添加一个规范链接来帮助你的SEO人员:

 <link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/> 

这是每个以前的答案加上一个额外的解决scheme,通过.htaccess使用HTTP刷新页眉的总结

1. HTTP刷新标题

首先,你可以使用.htaccess像这样设置一个刷新标题

 Header set Refresh "3" 

这是在PHP中使用header()函数的“静态”等价物

 header("refresh: 3;"); 

请注意,每个浏览器都不支持此解决scheme。

2. JavaScript / jQuery

使用替代url :

 <script> setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000); </script> 

没有备用url:

 <script> setTimeout("location.reload(true);",timeoutPeriod); </script> 

通过jQuery:

 <script> window.location.reload(true); </script> 

3.元刷新

您可以使用元刷新时,JavaScript和redirect标头的依赖关系是不需要的

使用替代url:

 <meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html"> 

没有备用url:

 <meta http-equiv="Refresh" content="3"> 

使用<noscript>

 <noscript> <meta http-equiv="refresh" content="3" /> </noscript> 

可选

按照Billy Moon的build议,如果出现问题,可以提供刷新链接:

如果您未自动redirect: <a href='http://example.com/alternat_url.html'>Click here</a>

资源

  • 维基百科Meta刷新

  • META REFRESH的性能影响

  • 使用jQuery刷新(重新加载)页面一次?

最好设置一个301redirect 。 请参阅Google的网站pipe理员工具文章301redirect

下面的元标记位于头部之间,会告诉浏览器redirect:

 <meta http-equiv="Refresh" content="seconds; url=URL"> 

将秒数replace为redirect之前要等待的秒数,然后将URLreplace为您希望redirect到的URL。

或者,您可以使用JavaScriptredirect。 将其置于页面上任何位置的脚本标记内:

 window.location = "URL" 

如果您期待遵循现代Web标准,您应该避免纯HTML metaredirect。 如果您无法创build服务器端代码,则应该selectJavaScriptredirect

要支持JS禁用的浏览器,将HTML metaredirect行添加到noscript元素。 noscript嵌套的元redirect与canonical标签相结合,也将有助于您的search引擎排名。

我想避免redirect循环,你应该使用location.replace()JavaScript函数。

正确的客户端URLredirect代码如下所示(使用IE 8和更低的修补程序,并且没有延迟):

 <!-- Pleace this snippet right after opening the head tag to make it work properly --> <!-- This code is licensed under GNU GPL v3 --> <!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited --> <!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ --> <!-- REDIRECTING STARTS --> <link rel="canonical" href="https://stackoverflow.com/"/> <noscript> <meta http-equiv="refresh" content="0;URL=https://stackoverflow.com/"> </noscript> <!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]--> <script type="text/javascript"> var url = "https://stackoverflow.com/"; if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer { document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix. var referLink = document.createElement("a"); referLink.href = url; document.body.appendChild(referLink); referLink.click(); } else { window.location.replace(url); } // All other browsers </script> <!-- Credit goes to http://insider.zone/ --> <!-- REDIRECTING ENDS --> 

你可以使用META “redirect”:

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

JavaScriptredirect(请注意,并非所有用户都已启用JavaScript,因此请始终为其准备备用解决scheme)

 <script language="javascript"> window.location = "http://new.example.com/address"; </script> 

但我宁愿推荐使用mod_rewrite ,如果你有select。

一旦页面加载, init函数被激发,页面被redirect:

 <!DOCTYPE html> <html> <head> <title>Example</title> <script> function init() { window.location.href = "www.wherever.com"; } </script> </head> <body onload="init()"> </body> </html> 

将下面的代码放在HTML代码的和标记之间。

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

上面的HTMLredirect代码会立即将您的访问者redirect到另一个网页。 content="0;可能会更改为您希望浏览器在redirect之前等待的秒数。

把下面的代码放在<head>部分:

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

您可以通过HTTP状态码301或302自动redirect。

对于PHP:

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

阅读更多其他源代码如何通过HTTP状态码301或302自动redirect

我在使用jQuery Mobile应用程序时发现了一个问题,在某些情况下,我的Meta标头不能正确实现redirect(jQuery Mobile不会自动为每个页面读取标头,所以把JavaScript放在这里也是无效的,复杂)。 在这种情况下,我发现最简单的解决scheme是将JavaScriptredirect直接放入文档正文中,如下所示:

 <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> 

这似乎对我来说都是有效的。

只是为了好的措施:

 <?php header("Location: example@example.com", TRUE, 303); exit; ?> 

确保脚本上方没有回显,否则将被忽略。 http://php.net/manual/en/function.header.php

你应该使用JavaScript。 将以下代码放在您的头标签中:

 <script type="text/javascript"> window.location.assign("http://www.example.com") </script> 

适用于所有types页面的简单方法就是在头部添加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> 

我使用脚本将用户从index.htmlredirect到home.html

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

剃刀引擎 5秒延迟:

 <meta http-equiv="Refresh" content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))"> 

只需使用body标签的onload事件。

 <body onload="window.location = 'http://example.com/'"> 

你不需要任何JavaScript代码。 把它写在HTML页面的<head>部分:

 <meta http-equiv="refresh" content="0; url=example.com" /> 

只要页面在0秒加载,你就可以进入你的页面。

 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Redirect to a page</title> </head> <body onload="window.location.assign('http://example.com')"> </body> </html>