Jump to the post that solved this thread.
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Solved: 12 Years, 9 Months, 2 Weeks ago Disable "Friendly Redirect Pages" on certain pages?
#10
Solved: 12 Years, 9 Months, 2 Weeks ago
(2012-04-12, 01:04 PM)euantor Wrote: It isn't possible as standard, though you could do it by modifying the core redirect() function found in ./inc/functions.php

Here's a quick example of something that MAY work - though I haven't tested it:

/**
 * Redirect the user to a given URL with a given message
 *
 * @param string The URL to redirect the user to
 * @param string The redirection message to be shown
 */
function redirect($url, $message="", $title="")
{
	global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;

	$redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
	
	$plugins->run_hooks("redirect", $redirect_args);

	if($mybb->input['ajax'])
	{
		// Send our headers.
		@header("Content-type: text/html; charset={$lang->settings['charset']}");
		echo "<script type=\"text/javascript\">\n";
		if($message != "")
		{
			echo 'alert("'.addslashes($message).'");';
		}
		$url = str_replace("#", "&#", $url);
		$url = htmlspecialchars_decode($url);
		$url = str_replace(array("\n","\r",";"), "", $url);
		echo 'window.location = "'.addslashes($url).'";'."\n";
		echo "</script>\n";
		exit;
	}

	if(!$message)
	{
		$message = $lang->redirect;
	}

	$time = TIME_NOW;
	$timenow = my_date($mybb->settings['dateformat'], $time) . " " . my_date($mybb->settings['timeformat'], $time);

	if(!$title)
	{
		$title = $mybb->settings['bbname'];
	}
	
	// Show redirects only if both ACP and UCP settings are enabled, or ACP is enabled, and user is a guest.
	if($mybb->settings['redirects'] == 1 && ($mybb->user['showredirect'] != 0 || !$mybb->user['uid']) && (THIS_SCRIPT != 'search.php'))
		$url = htmlspecialchars($url);

		eval("\$redirectpage = \"".$templates->get("redirect")."\";");
		output_page($redirectpage);
	}
	else
	{
		$url = htmlspecialchars_decode($url);
		$url = str_replace(array("\n","\r",";"), "", $url);

		run_shutdown();
		
		if(my_substr($url, 0, 7) !== 'http://' && my_substr($url, 0, 8) !== 'https://')
		{
			header("Location: {$mybb->settings['bburl']}/{$url}");
		}
		else
		{
			header("Location: {$url}");
		}
	}

	exit;
}

Notice the part that reads

&& (THIS_SCRIPT != 'search.php')

That basically should disable the friendly redirect on any page relating to searching. As I said, it hasn't been tested, but that's the way to go about doing what you want to do. Also, i'd advise using the patches plugin by frostschutz in order to make core edits as you can then enable and disable the changes you make more easily.

I changed the code and it gives error when entering the site:
Quote:Parse error: syntax error, unexpected T_ELSE in .../inc/functions.php on line 827
Jump to the post that solved this thread.


Messages In This Thread
RE: Disable "Friendly Redirect Pages" on certain pages? - by Come On Thru - 2012-04-12, 02:10 PM

Forum Jump:


Users browsing this thread: 2 Guest(s)