MDL-32147 - use correct 404 for server type
authorDan Marsden <dan@danmarsden.com>
Thu, 22 Mar 2012 20:58:52 +0000 (09:58 +1300)
committerDan Marsden <dan@danmarsden.com>
Thu, 22 Mar 2012 21:01:04 +0000 (10:01 +1300)
lib/filelib.php
mod/scorm/lib.php

index 43bc8dd..1d0b01c 100644 (file)
@@ -1596,9 +1596,19 @@ function get_mimetype_description($mimetype, $capitalise=false) {
  */
 function send_file_not_found() {
     global $CFG, $COURSE;
-    header('HTTP/1.0 404 not found');
+    send_header_404();
     print_error('filenotfound', 'error', $CFG->wwwroot.'/course/view.php?id='.$COURSE->id); //this is not displayed on IIS??
 }
+/**
+ * Helper function to send correct 404 for server.
+ */
+function send_header_404() {
+    if (substr(php_sapi_name(), 0, 3) == 'cgi') {
+        header("Status: 404 Not Found");
+    } else {
+        header('HTTP/1.0 404 not found');
+    }
+}
 
 /**
  * Check output buffering settings before sending file.
@@ -1651,7 +1661,7 @@ function send_temp_file($path, $filename, $pathisstring=false) {
 
     if (!$pathisstring) {
         if (!file_exists($path)) {
-            header('HTTP/1.0 404 not found');
+            send_header_404();
             print_error('filenotfound', 'error', $CFG->wwwroot.'/');
         }
         // executed after normal finish or abort
index 2561b20..143d98b 100644 (file)
@@ -924,7 +924,7 @@ function scorm_pluginfile($course, $cm, $context, $filearea, $args, $forcedownlo
     $fs = get_file_storage();
     if (!$file = $fs->get_file_by_hash(sha1($fullpath)) or $file->is_directory()) {
         if ($filearea === 'content') { //return file not found straight away to improve performance.
-            header('HTTP/1.0 404 not found');
+            send_header_404();
             die;
         }
         return false;