PHP 重定向是不是有任何缺点,因为似乎主要网站选择使用 Javascript 重定向?
Posted
技术标签:
【中文标题】PHP 重定向是不是有任何缺点,因为似乎主要网站选择使用 Javascript 重定向?【英文标题】:Are there any Cons for PHP redirect, as it seems major websites choose to use Javascript Redirect?PHP 重定向是否有任何缺点,因为似乎主要网站选择使用 Javascript 重定向? 【发布时间】:2014-05-16 16:39:14 【问题描述】:我查看了大约 5 个大型网站的重定向页面的源代码(重定向到他们的赞助商)。
其中大约 4 人使用了这些不同的 javascript 重定向:
<script type="text/javascript">
window.location = 'http://www.destination.com';
</script>
或
<script type="text/javascript">
setTimeout( function()
window.location.replace('http://www.destination.com');
, 1200);
</script>
或
<script type="text/javascript">
$(function ()
setTimeout(function ()
Redirect();
, 1500)
);
function Redirect()
window.location = $('#redirect-to').val();
</script>
或
<script type='text/javascript'>
window.location.href='http://www.destination.com'
</script>
其中一个正在使用 HTTP META REFRESH:
<META HTTP-EQUIV='refresh' CONTENT='0;URL="http://www.destination.com"' />
问题:
因为我知道 php,特别是重定向,例如:
header( "refresh:0;url=http://www.destination.com" );
在源代码中是“不可见的”,我想知道:
有没有办法判断 PHP 重定向是否也在这些页面上同时使用?
既然存在上述代码 - 你认为 PHP 重定向正在被使用吗?难道这些代码只是“后备”,以防 PHP 不起作用?
如果是这样,为什么需要回退,这样一个简单的 PHP 重定向会出现什么问题?
如果不是,那么为什么 Web 开发人员选择使用 JS/META REFRESH 而不是 PHP?与 JS/META 相比,PHP 有什么缺点吗?
谢谢!
编辑:
我不认为在重定向中包含延迟、显示内容或在执行重定向时运行各种脚本可以作为在 PHP 上使用 JS/META 的动机,因为这也可以在 PHP 中完成,例如以下代码:
<?php
header( "refresh:10;url=http://www.domain.com" );
?>
<!doctype html>
<html>
<head>
</head>
<body>
Redirecting you.
<script type="text/javascript">code</script><noscript>code</noscript>
</body>
</html>
【问题讨论】:
在我看来,php 重定向(或 .htaccess)更好,因为它们更可靠,如果用户关闭了 javascript,则意味着没有重定向。另外 5 个网站至少 20 个不算作“最多”测试。 嗯,这些网站的主要关键字在 Google 的第一页排名,所以我认为它们当然可以作为提出这些问题的一个很好的例子 受欢迎程度很少与质量挂钩。 Javascript 重定向在客户端触发,有时是由于某些事件。并且没有从服务器接收重定向标头。对于我的网站,我将使用 js 重定向和 PHP 标头作为故障保护。 @Quentin 我只是合理地假设,如果这些网站对如何在 Google 上实现 #1-#5 位置有透彻的了解,那么他们对使用最佳重定向方法也会有同样的理解. 【参考方案1】:实际上并没有 PHP 重定向之类的东西。有一个 HTTP 重定向,您可以使用 PHP(和许多其他技术)将其发送到浏览器。
有没有办法判断这些页面上是否同时使用了 PHP 重定向?
除非您使用的是明确忽略 HTTP 重定向的工具(并且您会知道是否这样做),否则您会看到重定向的资源而不是原始资源。
既然存在上述代码 - 你认为 PHP 重定向正在被使用吗?难道这些代码只是“后备”,以防 PHP 不起作用?
没有
如果是这样,为什么需要回退,这样一个简单的 PHP 重定向会出现什么问题?
网址不正确,不会出错。
如果不是,那么为什么 Web 开发人员选择使用 JS/META REFRESH 而不是 PHP?与 JS/META 相比,PHP 有什么缺点吗?
我能想到的使用文档级重定向的唯一原因是:
延迟重定向并首先向用户显示消息 在文档中运行 JavaScript(例如,收集有关浏览器的信息)并在重定向之前或重定向时将其发送到服务器。【讨论】:
但是可以创建一个PHP“重定向”页面,该页面既有时间延迟,又运行Javascript,其他内容显示在页面上。如果您愿意,我可以为您提供此类代码的示例。以上是关于PHP 重定向是不是有任何缺点,因为似乎主要网站选择使用 Javascript 重定向?的主要内容,如果未能解决你的问题,请参考以下文章