User:Barrylb/Fix for ampersand in titles
![]() Release status: unknown |
|
---|---|
Implementation | Interface |
Description | Ampersands or & appear in the wiki page title as &. |
Author(s) | Barrylb |
MediaWiki | 1.6.7 |
License | No license specified |
Download | No link |
Translate the Barrylb/Fix for ampersand in titles extension if it is available at translatewiki.net |
Because of URL Rewrites, ampersands (&) appear in the wiki page title as &.[1]
Patching Apache
editBelow Apache 2.0
editIf you're using URL rewriting and want to be able to use the ampersand (&) in page titles, you'll need to patch Apache to properly escape the character when generating the query string. A patch for Apache 1.3.26 is available as maintenance/apache-ampersand.diff in the MediaWiki source. (As of 2005, no patch is yet available for Apache 2.0.x.)
Change your mod_rewrite config like so[2]:
RewriteEngine On RewriteMap ampescape int:ampescape RewriteRule ^/wiki/(.*)$ /w/wiki.phtml?title=${ampescape:$1} [L] RewriteRule ^/wiki$ /w/wiki.phtml
Patching without Apache
editIf an editor does not have the ability to patch Apache like Wikipedia's solution, try this solution which modifies the MediaWiki code to extract the title from the $_SERVER variable. [WHERE?]
This is tested and working on 1.6.7.
Modify includes/WebRequest.php - function WebRequest() - put the following after global $wgUsePathInfo;
:
global $wgArticlePath; if (strpos($_SERVER['SCRIPT_NAME'], 'index.php') === false) { $articlePathPart = str_replace('$1','',$wgArticlePath); $_GET['title'] = $_REQUEST['title'] = str_replace($articlePathPart, '', $_SERVER['SCRIPT_NAME']); }