- if( ( $action == 'view' || $action == 'render' ) && !$request->getVal( 'oldid' ) &&
- $request->getVal( 'redirect' ) != 'no' &&
- !( $title->getNamespace() == NS_IMAGE && wfFindFile( $title->getText() ) ) ) {
-
+ // 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;
+