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 |
| Licence | No licence 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
[edit]Below Apache 2.0
[edit]If 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
[edit]If 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']);
}
See also
[edit]- Manual talk:Short URL/Archive 1#Help? *bursts out crying or Ampersand shpampersand!
- Manual talk:Short URL/Ampersand solution
