Current configuration on the wiki
Find a file
Tim Starling f6d582a91e Avoid a redirect loop when the request URL is not normalized
If the request URL was not normalized, for example having a double slash
in it, this could cause it to fail to match in the PathRouter. But the
canonicalizing redirect was using the normalized URL, causing a redirect
loop exception.

So:

* If the PathRouter fails to match with the original URL, try matching
  against the normalized URL. This allows it to still work for
  normalized URLs with a double slash in the title part of the path.
* Have WebRequest::getFullRequestURL() always return the URL without
  removing dot segments or interpreting double slashes. Just append
  the path to the server.
* Make MediaWikiTest.php use WebRequest instead of FauxRequest, allowing
  it to reproduce the exception in question. Add relevant test.
* Add tests for the new PathRouter behaviour.

Bug: T100782
Change-Id: Ic0f3a0060904abc364f75dae920480b81175d52f
2018-07-16 15:55:59 +10:00
cache
docs Pass $opts by reference to subscribers of 'SpecialSearchPowerBox' hook to allow them to modify it 2018-07-14 22:42:41 +00:00
extensions Revert "Creating new WMF 1.30.0-wmf.2 branch" 2017-05-25 22:57:06 +02:00
images Change bug ID to Phabricator task ID 2016-02-03 20:13:10 -05:00
includes Avoid a redirect loop when the request URL is not normalized 2018-07-16 15:55:59 +10:00
languages Localisation updates from https://translatewiki.net. 2018-07-15 21:54:32 +02:00
maintenance Don't throw E_NOTICEs about undefined properties 2018-07-13 06:33:10 +03:00
mw-config installer: Do not wrongly hide namespace input field 2018-05-08 02:39:52 +00:00
resources Merge "Ensure LanguageCode::bcp47() returns a valid BCP 47 language code" 2018-07-13 19:28:25 +00:00
serialized languages: Use static array files for normalizer data 2018-05-22 21:38:43 +00:00
skins Revert "Creating new WMF 1.30.0-wmf.2 branch" 2017-05-25 22:57:06 +02:00
tests Avoid a redirect loop when the request URL is not normalized 2018-07-16 15:55:59 +10:00
.editorconfig Add a simple .editorconfig 2017-08-21 18:00:49 +00:00
.eslintrc.json build: Enable and make pass no-prototype-builtins 2018-07-05 17:36:01 -07:00
.gitattributes Follow-up 95e7c545: Fix .gitattributes file line truncation 2018-01-20 15:30:38 -08:00
.gitignore selenium: Create local ./log directory if needed 2018-05-09 14:30:55 +00:00
.gitreview Swapping defaultbranch for track 2016-10-25 00:32:10 +00:00
.mailmap Update CREDITS and .mailmap 2018-04-18 02:10:45 +01:00
.phpcs.xml Fix PhanTypeMismatchDeclaredParam 2018-07-07 00:34:30 +00:00
.stylelintrc.json build: Update stylelint 2017-10-27 13:31:41 +01:00
.travis.yml build: Set Travis conf to "allow failure" for long-failing builds 2018-07-02 18:11:42 -07:00
api.php Drop deprecated EnableAPI and EnableWriteAPI settings 2018-04-18 00:30:34 +00:00
autoload.php Use a closure instead of PathRouterPatternReplacer 2018-07-11 10:54:35 +10:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2017-05-29 23:25:11 +02:00
composer.json Update OOUI to v0.27.5 2018-07-11 11:43:15 -07:00
composer.local.json-sample Add a composer.local.json-sample 2016-01-08 20:25:38 +00:00
COPYING Replace HTTP by HTTPS in docs 2017-10-15 11:11:16 +02:00
CREDITS Update CREDITS and .mailmap 2018-04-18 02:10:45 +01:00
FAQ Documentation link changes 2016-10-07 20:32:45 +00:00
Gruntfile.js skins: Remove redundant mediawiki.hidpi script 2018-06-25 17:17:16 +00:00
HISTORY Move RELEASE-NOTES-1.31 into HISTORY 2018-06-13 09:14:34 -07:00
img_auth.php /*.php: Replace implicit Bugzilla bug numbers with Phab ones 2017-02-21 02:14:48 +00:00
index.php build: Updating mediawiki/mediawiki-codesniffer to 15.0.0 2018-01-01 14:10:16 +01:00
INSTALL Bump PHP version requirement to 7.0.0+ 2018-05-24 16:15:56 +01:00
jsduck.json resourceloader: Embed 'mediawiki' directly in startup response 2018-06-27 17:06:35 +00:00
load.php resourceloader: Disable ChronologyProtector on load.php (again) 2018-04-20 01:15:29 +01:00
opensearch_desc.php Restore original OpenSearch namespaces 2018-06-07 18:54:20 +02:00
package.json build: Upgrade eslint to 5.x 2018-07-05 16:58:14 -07:00
profileinfo.php PHP: Use short ternary operator (?:) where possible 2018-06-11 11:26:35 +02:00
README Revert "docs: Rename README to README.md" 2018-06-07 06:53:59 +00:00
README.mediawiki Revert "docs: Rename README to README.md" 2018-06-07 06:53:59 +00:00
RELEASE-NOTES-1.32 Pass $opts by reference to subscribers of 'SpecialSearchPowerBox' hook to allow them to modify it 2018-07-14 22:42:41 +00:00
SECURITY Add SECURITY 2017-10-03 13:03:35 -07:00
thumb.php Fix PhanTypeMismatchDeclaredParam 2018-07-07 00:34:30 +00:00
thumb_handler.php
UPGRADE Replace HTTP by HTTPS in docs 2017-10-15 11:11:16 +02:00

== MediaWiki ==

MediaWiki is a free and open-source wiki software package written in PHP. It
serves as the platform for Wikipedia and the other Wikimedia projects, used
by hundreds of millions of people each month. MediaWiki is localised in over
350 languages and its reliability and robust feature set have earned it a large
and vibrant community of third-party users and developers.

MediaWiki is:

* feature-rich and extensible, both on-wiki and with hundreds of extensions;
* scalable and suitable for both small and large sites;
* simple to install, working on most hardware/software combinations; and
* available in your language.

For system requirements, installation, and upgrade details, see the files
RELEASE-NOTES, INSTALL, and UPGRADE.

* Ready to get started?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Download
* Looking for the technical manual?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents
* Seeking help from a person?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Communication
* Looking to file a bug report or a feature request?
** https://bugs.mediawiki.org/
* Interested in helping out?
** https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute

MediaWiki is the result of global collaboration and cooperation. The CREDITS
file lists technical contributors to the project. The COPYING file explains
MediaWiki's copyright and license (GNU General Public License, version 2 or
later). Many thanks to the Wikimedia community for testing and suggestions.