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 重定向?的主要内容,如果未能解决你的问题,请参考以下文章

登录 WordPress 后重定向

使用php在paypal自动重定向中的任何可能

如何将任何图片文件类型重定向到同名的php文件?

将 *.htm 重定向到 *.php

不使用301而是使用PHP脚本进行重定向,是吗?

根文件夹中网站的 HTML 到 PHP 重定向?