PHP重定向是否有任何缺点,因为似乎主要网站选择使用Javascript重定向?

时间:2014-04-04 11:27:44

标签: javascript php redirect url-redirection http-redirect

我已经看了大约5个大网站(重定向到赞助商)的重定向页面的源代码。

其中约有4人正在使用这些不同的Javascript重定向:

<script type="text/javascript"> 
window.location = 'http://www.destination.com'; 
</script> 

OR

<script type="text/javascript">
setTimeout( function() {
window.location.replace('http://www.destination.com');
}, 1200);
</script>

OR

<script type="text/javascript"> 
$(function () { 
setTimeout(function () { 
Redirect(); 
}, 1500) 
}); 

function Redirect() { 
window.location = $('#redirect-to').val(); 
} 
</script> 

OR

<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" );

源代码中“隐形”,我想知道:

  1. 有没有办法判断PHP重定向是否也在这些页面上同时使用?

  2. 因为上面的代码存在 - 您认为PHP重定向是否被使用?难道这些代码只是在PHP不起作用的情况下“后退”吗?

  3. 如果是这样,为什么需要回退,这样一个简单的PHP重定向会出现什么问题呢?

  4. 如果没有,那么为什么web deveploper选择使用JS / META REFRESH而不是PHP?与JS / META相比,PHP有什么缺点吗?

  5. 谢谢!

    修改

    我不认为在重定向时包含延迟重定向,显示内容或运行各种脚本,可以作为使用JS / META而不是PHP的动机,因为这可以在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>
    

1 个答案:

答案 0 :(得分:2)

实际上没有PHP重定向这样的东西。有一个HTTP重定向,您可以使用PHP(以及许多其他技术)将其发送到浏览器。

  

有没有办法判断PHP重定向是否也在这些页面上同时使用?

除非您使用明确忽略HTTP重定向的工具(并且您知道自己是否存在),否则您将看到重定向资源而不是原始资源。

  

因为上面的代码存在 - 您认为PHP重定向是否被使用?难道这些代码只是在PHP不起作用的情况下“后退”吗?

没有

  

如果是这样,为什么需要回退,这样一个简单的PHP重定向会出现什么问题呢?

如果网址错误,则不会出现任何问题。

  

如果没有,那么为什么web deveploper选择使用JS / META REFRESH而不是PHP?与JS / META相比,PHP有什么缺点吗?

我可以考虑使用文档级重定向的唯一原因是:

  • 执行时间延迟重定向并首先向用户显示消息
  • 在文档中运行JavaScript(例如,获取有关浏览器的信息),并在重定向之前或重定向时将其发送到服务器。