Extension:Redirect302

Category:Extensions which host their code in-wiki Category:Unmaintained extensions#Redirect302 Category:Extensions without an imageCategory:Extensions without a compatibility policyCategory:GPL licensed extensions
MediaWiki extensions manual
Redirect302
Release status: unmaintainedCategory:Unmaintained extensions
Implementation Hook Category:Hook extensions
Description Adds a hook to create 302 style redirects
Author(s) Joshua Gay (Joshuagaytalk)
Latest version 0.2 (2012-11-07)
MediaWiki 1.17+Category:Extensions with manual MediaWiki version
Database changes No
License GNU General Public License 2.0 or later
Download see below
Example The Free Software Directory
Category:All extensionsCategory:Extensions not in ExtensionJson

The Redirect302 extension changes the redirect hook so that an http 302 error is issued and the redirect is done on the client side.

Installation

Code

Redirect302.php

<?php

/**
 * This extension changes the redirect hook so that an http 302 error is issued and the redirect is done on the client side.
 *
 * @file
 * @ingroup Extensions
 * license: GPL-2.0-or-later
 */

if ( !defined( 'MEDIAWIKI' ) ) die();

// credits
define('Redirect302_VERSION', '0.2' );
$wgExtensionCredits['other'][] = array(
         'path' => __FILE__,
         'name' => 'Redirect302',
         'version' => Redirect302_VERSION,
         'author' => array( 'Joshua Gay' ),
         'url' => 'https://www.mediawiki.org/wiki/Extension:Redirect302',
         'descriptionmsg' => 'redirect302-desc',
);

// messages i18n
$dir = dirname(__FILE__) . '/';
$wgExtensionMessagesFiles['Redirect302'] = $dir . 'Redirect302.i18n.php';

// Register hook
$wgHooks['InitializeArticleMaybeRedirect'][] = 'redirect302_hook';

// Redirect with 302
function redirect302_hook($title, $request, &$ignoreRedirect, &$target, &$article) {
  if (!$ignoreRedirect && $article->isRedirect()) {
    if(($target = $article->followRedirect()) instanceof Title) {
      $target = $target->getFullURL();
    }
  }
  return true;
}

Redirect302.i18n.php

<?php
/**
 * Internationalisation file for extension Redirect302.
 *
 * @file
 * @ingroup Extensions
 */

$messages = array();
 
/** English
 * @author Joshua Gay
 */
$messages['en'] = array(
         'redirect302-desc' => 'Adds a hook to create 302 style redirects',
);

/** German (Deutsch)
 * @author Kghbln
 */
$messages['de'] = array(
         'redirect302-desc' => 'Ermöglicht Umleitungen mit HTTP-Statuscode 302',
);

On-wiki translation

/** English (English)
 * @author ?
 */
$messages['en'] = array(
         'redirect302-desc' => 'Adds a hook to create 302 style redirects',
);
Category:All extensions Category:Extensions not in ExtensionJson Category:Extensions not using extension registration Category:Extensions which host their code in-wiki Category:Extensions with manual MediaWiki version Category:Extensions without a compatibility policy Category:Extensions without an image Category:GPL licensed extensions Category:Hook extensions Category:InitializeArticleMaybeRedirect extensions Category:Unmaintained extensions