从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 meta
redirect。 如果您无法创build服务器端代码,则应该selectJavaScriptredirect 。
要支持JS禁用的浏览器,将HTML meta
redirect行添加到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>