- if( $action == 'view' && !$request->getVal( 'oldid' ) &&
- $request->getVal( 'redirect' ) != 'no' ) {
+ // Check for redirects ...
+ $file = ($title->getNamespace() == NS_FILE) ? $article->getFile() : null;
+ if( ( $action == 'view' || $action == 'render' ) // ... for actions that show content
+ && !$request->getVal( 'oldid' ) && // ... and are not old revisions
+ $request->getVal( 'redirect' ) != 'no' && // ... unless explicitly told not to
+ // ... and the article is not a non-redirect image page with associated file
+ !( is_object( $file ) && $file->exists() && !$file->getRedirected() ) )
+ {
+ # Give extensions a change to ignore/handle redirects as needed
+ $ignoreRedirect = $target = false;
+
+ $dbr = wfGetDB( DB_SLAVE );
+ $article->loadPageData( $article->pageDataFromTitle( $dbr, $title ) );