Extension:Redirect302
Appearance
This extension stores its source code on a wiki page. Please be aware that this code may be unreviewed or maliciously altered. They may contain security holes, outdated interfaces that are no longer compatible etc. Note: No localisation updates are provided for this extension by translatewiki.net . |
This extension is currently not actively maintained! Although it may still work, any bug reports or feature requests will more than likely be ignored. |
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 | GNU General Public License 2.0 or later |
Download | see below |
Example | The Free Software Directory |
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 yourextensions/
folder. - Add the following code at the bottom of your LocalSettings.php file:
require_once "$IP/extensions/Redirect302/Redirect302.php";
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
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',
);