MediaWiki extensions manual
Redirect302
Release status: unmaintained
Implementation Hook
Description Adds a hook to create 302 style redirects
Author(s) Joshua Gay (Joshuagaytalk)
Latest version 0.2 (2012-11-07)
MediaWiki 1.17+
Database changes No
License GPL
Download see below
Example The Free Software Directory
Hooks used
  • InitializeArticleMaybeRedirect

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

  • Copy the code into files and place the file(s) in a directory called Redirect302 in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php file:
    require_once "$IP/extensions/Redirect302/Redirect302.php";
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Code

Redirect302.php

<?php

/**
 * <translate nowrap><!--T:6--> This extension changes the redirect hook so that an http 302 error is issued and the redirect is done on the client side.</translate>
 *
 * @file
 * @ingroup Extensions
 */

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
/**
 * <translate nowrap><!--T:7--> Internationalisation file for extension Redirect302.</translate>
 *
 * @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',
);
This article is issued from Mediawiki. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.