Recommended Posts

Можно убить это поведение совсем, разместив строки

if(isset($_SESSION['rem_page'])){unset($_SESSION['rem_page']);}

в файле /main/main.php сразу после <?php

Хотел   спросить "куда?", но ответ вот подвернулся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 07.11.2015в15:21, abushyk сказал:

Вариант 1:

суть: разбираем адрес запроса. анализируем параметры на наличие первой страницы. при наличии его - убираем ео из параметров, пересклеиваем строку запроса, формируем новый адрес с учетом вырезки и делаем редирект.

минусы: больше строк

плюсы: нет неочевидных регулярок


$parsed_parts=parse_url($_SERVER['REQUEST_URI']);$par=array();parse_str($parsed_parts['query'], $par);if(isset($par['page']) && $par['page']=='1'){  unset($par['page']);  $new_location=SITEBILL_MAIN_URL.$parsed_parts['path'].(count($par)>0 ? '?'.http_build_query($par) : '');  header('HTTP/1.1 301 Moved Permanently');  header('Location: '.$new_location);  exit();}

Вариант 2:

суть: регуляркой ищем в строке запроса подозрительные куски вида ?page=1 и &page=1, При наличии их даем команду на замену. Но замену проводим не в лоб, а избирательно:

 

/apps/?page=1&paramА=x&paramB=y =============> ?page=1& меняем на "?" что бы сохранить целостность строки запросы и просто убить первое звено

/apps/?page=1 =============> ?page=1 "короткая" строка запроса: меняем на пустоту

/apps/?paramА=x&page=1&paramB=y =============> &page=1 меняем на пустоту (удаляем звено)

 

порядок замен важен!

 

минусы: для фанатов регулярок минусов нет, но необходимость вариативнх действия после использования регулярки, сводит профит от ее применения к мизеру

плюсы: меньше строк


$r_uri = $_SERVER['REQUEST_URI'];if (preg_match("#([\?\&]page=1)\D*$#", $r_uri, $matches)) {  $new_location=SITEBILL_MAIN_URL.str_replace(array('?page=1&', '?page=1', '&page=1'), array('?', '', ''), $r_uri);  header('HTTP/1.1 301 Moved Permanently');  header('Location: '.$new_location);  exit();}

Помогите! Хотел попробовать эту фишку, теперь сайт http://60000000.etownpro.ru/ не отображается... Пишет: 

Нет прав на запись для каталога(ов).
Установите права на запись (0777) для: 
/home/nklmhqio/public_html/img/data
/home/nklmhqio/public_html/img/data/user

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, abushyk сказал:

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

А где их проверить? Может скинем Вам доступ к фтп, гляните?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 минуты назад, Retro сказал:

А где их проверить? Может скинем Вам доступ к фтп, гляните?

ок

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тема актуальна для шаблона реалия -так как тестируя тоже наткнулись на данную штуку как последняя запомненная страница
так как сейчас например пролистая до страницы N ай нафиг листать устал давай логотип нажму чтобы на главную как бы выйти и на основную :)
Вроде пользователь перешел но фактически на той же странице находится и говорит а чего такие объявки то старые мол давно же их загружали. В поле зрения не сразу попадает нажатая страница с номером N, так как только внизу находиться список и не каждый до туда доходит.
Как правильно исправить? и без побочных эффектов может с тех пор этот механизм куда то логичнее вынести в админку в общие ? мол кому то так нравиться а кому то так, чтобы каждому код не править

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите с первым вариантом, вставил код, как писал Дмитрий: 

Вам нужно в этом файле найти функцию (строчки)

function main () {

И сразу после нее добавить код.

Так и сделал, Ваш код первого варианта вставил 

Правильно сделал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, Novichok сказал:

Подскажите с первым вариантом, вставил код, как писал Дмитрий: 

Вам нужно в этом файле найти функцию (строчки)


function main () {

И сразу после нее добавить код.

Так и сделал, Ваш код первого варианта вставил 

Правильно сделал?

Покажите ваш код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, rumantic сказал:

Покажите ваш код.

	 */
	function main () {
$parsed_parts=parse_url($_SERVER['REQUEST_URI']);$par=array();parse_str($parsed_parts['query'], $par);if(isset($par['page']) && $par['page']=='1'){  unset($par['page']);  $new_location=SITEBILL_MAIN_URL.$parsed_parts['path'].(count($par)>0 ? '?'.http_build_query($par) : '');  header('HTTP/1.1 301 Moved Permanently');  header('Location: '.$new_location);  exit();}
		
		//preg_match('/([-]?[0-9]{2,3}\.[0-9]{6}),([-]?[0-9]{2,3}\.[0-9]{6}):([-]?[0-9]{2,3}\.[0-9]{6}),([-]?[0-9]{2,3}\.[0-9]{6})/', '49.882247,23.946712:44.056012,-123.831481', $matches);
		//print_r($matches);
		
		$layouts=array(
			'_default'=>'layout_basic.tpl',
			'home'=>'layout_home.tpl',
			'apps'=>'layout_basic.tpl',
			'realtygrid'=>'layout_full.tpl',
			'realtyview'=>'layout_full.tpl',
			'account'=>'layout_account.tpl',
			'find'=>'layout_find.tpl',
			'realtymap'=>'layout_map.tpl'/*,
			'multitab'=>'layout_multitab.tpl',*/
		);
		

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Novichok сказал:

	 */
	function main () {
$parsed_parts=parse_url($_SERVER['REQUEST_URI']);$par=array();parse_str($parsed_parts['query'], $par);if(isset($par['page']) && $par['page']=='1'){  unset($par['page']);  $new_location=SITEBILL_MAIN_URL.$parsed_parts['path'].(count($par)>0 ? '?'.http_build_query($par) : '');  header('HTTP/1.1 301 Moved Permanently');  header('Location: '.$new_location);  exit();}
		
		//preg_match('/([-]?[0-9]{2,3}\.[0-9]{6}),([-]?[0-9]{2,3}\.[0-9]{6}):([-]?[0-9]{2,3}\.[0-9]{6}),([-]?[0-9]{2,3}\.[0-9]{6})/', '49.882247,23.946712:44.056012,-123.831481', $matches);
		//print_r($matches);
		
		$layouts=array(
			'_default'=>'layout_basic.tpl',
			'home'=>'layout_home.tpl',
			'apps'=>'layout_basic.tpl',
			'realtygrid'=>'layout_full.tpl',
			'realtyview'=>'layout_full.tpl',
			'account'=>'layout_account.tpl',
			'find'=>'layout_find.tpl',
			'realtymap'=>'layout_map.tpl'/*,
			'multitab'=>'layout_multitab.tpl',*/
		);
		

Поставили куда нужно. Теперь можете потестировать на сайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, rumantic сказал:

Поставили куда нужно. Теперь можете потестировать на сайте.

Спасибо, а как с ?page=2,3 и т.д. А то товарищ Google выдает главную 

www.cndom.ru/?page=99
  1. 333.png
  2. 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Novichok сказал:

Спасибо, а как с ?page=2,3 и т.д. А то товарищ Google выдает главную 

www.cndom.ru/?page=99

А вот page=2 это уже не логично перенаправлять на главную, так как там идет контент со второй страницы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, rumantic сказал:

А вот page=2 это уже не логично перенаправлять на главную, так как там идет контент со второй страницы.

Подскажите, а если их закрыть в роботе, поисковики же доберутся до объявлений из подгружаемых как похожие объекты в карточке объявлений? Или как-то указать поисковикам, что это второстепенная страница и ткнуть их носом на основную! Как-то так)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Novichok сказал:

Подскажите, а если их закрыть в роботе, поисковики же доберутся до объявлений из подгружаемых как похожие объекты в карточке объявлений? Или как-то указать поисковикам, что это второстепенная страница и ткнуть их носом на основную! Как-то так)))

Не надо их закрывать, страницы с page=N значимые страницы. Если вы их выключите, то у вас много страниц не проиндексируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, rumantic сказал:

Не надо их закрывать, страницы с page=N значимые страницы. Если вы их выключите, то у вас много страниц не проиндексируется.

Ок, Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас