From 36a6d48bdef37796a2e11f3158b5f663a5eaa503 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 28 Feb 2005 05:34:22 +0000 Subject: [PATCH] Return 404 for action=raw hits to pages that don't exist, if they don't set a content-type for CSS/JS imports. --- includes/RawPage.php | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) 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 ''; } } ?> -- 2.20.1