From: Brion Vibber Date: Mon, 28 Feb 2005 05:34:22 +0000 (+0000) Subject: Return 404 for action=raw hits to pages that don't exist, if they don't set a content... X-Git-Tag: 1.5.0alpha1~689 X-Git-Url: http://git.cyclocoop.org/geomaker.php?a=commitdiff_plain;h=36a6d48bdef37796a2e11f3158b5f663a5eaa503;p=lhc%2Fweb%2Fwiklou.git Return 404 for action=raw hits to pages that don't exist, if they don't set a content-type for CSS/JS imports. --- diff --git a/includes/RawPage.php b/includes/RawPage.php index f7791f467d..899de6d801 100644 --- a/includes/RawPage.php +++ b/includes/RawPage.php @@ -94,23 +94,31 @@ class RawPage { global $wgInputEncoding, $wgContLang; $fname = 'RawPage::getrawtext'; - if( !$this->mTitle ) return ''; - - # Special case for MediaWiki: messages; we can hit the message cache. - if( $this->mTitle->getNamespace() == NS_MEDIAWIKI) { - $rawtext = wfMsg( $this->mTitle->getDbkey() ); - return $rawtext; + if( $this->mTitle ) { + # Special case for MediaWiki: messages; we can hit the message cache. + if( $this->mTitle->getNamespace() == NS_MEDIAWIKI) { + $rawtext = wfMsg( $this->mTitle->getDbkey() ); + return $rawtext; + } + + # else get it from the DB + $rev = Revision::newFromTitle( $this->mTitle, $this->mOldId ); + if( $rev ) { + $lastmod = wfTimestamp( TS_RFC2822, $rev->getTimestamp() ); + header( 'Last-modified: ' . $lastmod ); + return $rev->getText(); + } } - # else get it from the DB - $rev = Revision::newFromTitle( $this->mTitle, $this->mOldId ); - if( $rev ) { - $lastmod = wfTimestamp( TS_RFC2822, $rev->getTimestamp() ); - header( 'Last-modified: ' . $lastmod ); - return $rev->getText(); - } else { - return ''; + # Bad title or page does not exist + if( $this->mContentType == 'text/x-wiki' ) { + # Don't return a 404 response for CSS or JavaScript; + # 404s aren't generally cached and it would create + # extra hits when user CSS/JS are on and the user doesn't + # have the pages. + header( "HTTP/1.0 404 Not Found" ); } + return ''; } } ?>