don't redirect to the canonical title if other parameters have been passed in $_GET
authorTim Starling <tstarling@users.mediawiki.org>
Sun, 25 Jul 2004 11:49:05 +0000 (11:49 +0000)
committerTim Starling <tstarling@users.mediawiki.org>
Sun, 25 Jul 2004 11:49:05 +0000 (11:49 +0000)
includes/WebRequest.php
index.php

index bcec3c0..303af7c 100644 (file)
@@ -117,6 +117,10 @@ class WebRequest {
        
        function getValues() {  
                $names = func_get_args();
+               if ( count( $names ) == 0 ) {
+                       $names = array_keys( $_REQUEST );
+               }
+
                $retVal = array();
                foreach ( $names as $name ) { 
                        $value = $this->getVal( $name );
index 85403d9..c01a2b1 100644 (file)
--- a/index.php
+++ b/index.php
@@ -74,7 +74,9 @@ if ( $search = $wgRequest->getText( 'search' ) ) {
                $wgTitle = Title::newFromText( wfMsg( "badtitle" ) );
                $wgOut->errorpage( "badtitle", "badtitletext" );
        }
-} else if ( ( $action == "view" ) && $wgTitle->getPrefixedDBKey() != $title ) {
+} else if ( ( $action == "view" ) && $wgTitle->getPrefixedDBKey() != $title &&
+  !count( array_diff( array_keys( $_GET ), array( 'action', 'title' ) ) ) )
+{
        /* redirect to canonical url, make it a 301 to allow caching */
        $wgOut->redirect( $wgTitle->getFullURL(), '301');
 } else if ( Namespace::getSpecial() == $wgTitle->getNamespace() ) {