Игнорирование q параметра в адресной строке
Гугля и Яша при различных рекламных кампаниях любят к ссылкам подставлять параметр q, вследствие чего пользователь переходя по ссылке получает 404 ошибку, ибо этот параметр зарезервирован системой под ЧПУ. Обойти это можно, если вспомнить про то, что $_SERVER['REQUEST_URI'] дает нам целиком, что вбито в адресной строке. Далее путем не сложного кода получаем плагин под катом, после установки которого все работает как надо… Ну по крайней мере должно)
P.S. По идее должно работать на обоих ветках: Evo и Revo
//<?php
/**
* Q replace
*
* Remove $_GET['q'] from url
*
* @category plugin
* @internal @events OnPageNotFound
* @internal @modx_category Content
* @internal @properties
* @internal @disabled 0
* @internal @installset base
*/
if ((strpos($_SERVER['REQUEST_URI'],"&q=")!==false) or (strpos($_SERVER['REQUEST_URI'],"?q=")!==false)){
$urls = explode('?',$_SERVER['REQUEST_URI']);
$gets = array();
if ($urls[1]){
foreach(explode('&',$urls[1]) as $param){
$params = explode('=',$param);
if ($params[0]!='q') $gets[] = $param;
}
}
if (count($gets)) $url = $urls[0].'?'.implode('&',$gets);
else $url = $urls[0];
$content = file_get_contents(MODX_SITE_URL.$url);
header("HTTP/1.1 200 OK");
echo $content;
exit();
}
P.S. По идее должно работать на обоих ветках: Evo и Revo
0 комментариев