【问题标题】:Handle 403 error without making redirection处理 403 错误而不进行重定向
【发布时间】:2012-08-17 15:55:47
【问题描述】:

我想在不使用服务器端错误重定向方法(即不使用 .htaccess 文件)的情况下处理 403 错误。有时服务器会返回 403 错误消息(禁止访问)。那么是否有可能拥有处理此 403 错误消息的 PHP 脚本?

例如,在显示错误页面之前,我想在我的特定 php 页面运行时获取服务器状态,并且不进行重定向,我只想在该页面中显示自定义消息。

【问题讨论】:

    标签: php


    【解决方案1】:

    为您提供一些解决方案。

    1. 检查 URL 错误并确保指定了实际网页。当 URL 指向目录而不是网页时,网站返回 403 Forbidden 错误的常见原因。这可以使用 PHP 中的 HttpRequest 类来完成。您可以使用http_get 来执行 GET 请求。你也可以Test URL here

      <?php
      $response = http_get("URL", array("timeout"=>1), $info);
      print_r($info);
      ?>
      

      输出:

      array (
         'effective_url' => 'URL',
         'response_code' => 403,
         .
         and so on
         )
      

      对您来说重要的是 response_code,您可以使用它进一步发挥作用。

    2. 卷曲的使用。

      function http_response($url)
      { 
          $ch = curl_init(); 
          curl_setopt($ch, CURLOPT_URL, $url); 
          curl_setopt($ch, CURLOPT_HEADER, TRUE); 
          curl_setopt($ch, CURLOPT_NOBODY, TRUE); 
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
          $head = curl_exec($ch); 
          $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
          curl_close($ch); 
      
          if(!$head) 
          {  
           return FALSE; 
          } 
      
          return $httpCode;
      }
      
      $errorcode = http_response("URL");    //if success 200 otherwise different
      

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2012-07-04
      • 2015-03-19
      • 2016-02-14
      • 1970-01-01
      • 2012-07-26
      • 2011-07-23
      • 1970-01-01
      • 2019-01-13
      相关资源
      最近更新 更多