?реф=0001 на главную страницу проекта

Пытаюсь прикрутить линк для партнерки, на второстепенные страницы проходит нормально, на главную никак не хочет,
ищу решение, пробывал через RewriteCond результат тот же.

livestreet.ru/?ref=0001 работает нормально,
мой_сайт/?ref=0001 выдает 404,

Версия LiveStreet_0.3.1
  • avatar
  • 1
  • 0
    • 0
    • 0
    • 0

5 комментариев

avatar
сайт livestreet.ru уже работает на 0.4 ;)
avatar
Так он RC… но мысль уловил)) скачаю LiveStreet 0.4.RC попробую покопаться, но от дельного совета не откажусь…
avatar
Чайник кипит, лампочки в голове гаснут))

Кому интересно, нашел наверно не очень красивый способ решения.

В classes/engine/Router.class.php в protected function __construct() после 87 строки добавляем
новую строку:
if(!empty($sReq)) if($sReq[0]=="?") $aRequestUrl=array();


получается:
protected function __construct() {
		$this->LoadConfig();

		if (get_magic_quotes_gpc()) {
			func_stripslashes($_REQUEST);
		}

		$sReq=preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);
		$sReq=preg_replace("/^\/(.*)\/?$/U",'\\1',$sReq);
		$sReq=preg_replace("/^(.*)\/\?.*$/U",'\\1',$sReq);

		self::$sPathWebCurrent = DIR_WEB_ROOT."/".$sReq;

		$aRequestUrl = ($sReq=='') ? array() : explode('/',$sReq);
		for ($i=0;$i<SYS_OFFSET_REQUEST_URL;$i++) {
			array_shift($aRequestUrl);
		}
		if(!empty($sReq)) if($sReq[0]=="?") $aRequestUrl=array();
		self::$sAction=array_shift($aRequestUrl);
		self::$sActionEvent=array_shift($aRequestUrl);
		self::$aParams=$aRequestUrl;
	}
  • lom
  • 0
avatar
В 0.3 есть такая проблема. И если нужен рабочий вариант без хака, то так:
site.ru/ref/0001
И писать экшен типа ActionRef в котором Router::GetActionEvent() будет как раз возвращать этот самый реф-номер
avatar
не все так просто к сожалению, партнерка старая, на ней уже висит куча рефов, и просить всех переделать линки с /?ref=xxxx на /ref/xxxx нецелесообразно… так что пришлось поработать напильником...)))
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.