Перейти к публикации
vir2oz

DataLife Engine Помогите исправить редирект пагинации...

Рекомендованные сообщения

vir2oz

http://сайт.ру/page/1/

Делает редирект на главную, ибо дубль.
А вот если один слэш убрать, нечего не происходит...
http://сайт.ру/page/1
А вот если написать http://сайт.ру/page/2 без слэша, то она автоматом ставит его.

И в категориях баг:
Если написать http://сайт.ру/main/page/1/
Выдаст ошибку и такое в адресной строке http://сайт.ру/D:/EleanorServ/www/сайт.ру/main/
Это на локалке, я проверял на хостинге, всё тоже самое, только директория другая)
А если написать без слеша http://сайт.ру/main/page/1
То всё правильно делает редирект на http://сайт.ру/main/

Вот код в htaccess:



RewriteRule ^(.*)/page/1/$ $1/ [R=301,L]
RewriteRule ^(.*)page/1/$ $1/ [R=301,L]

А вот в engine/engine.php перед:



		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {

Добавить:



		if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1/') !== false) ) {
		$first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $first_page_url");
		die("Redirect");
		}

Помогите исправить...

Изменено пользователем vir2oz

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


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

А вот если один слэш убрать, нечего не происходит... http://сайт.ру/page/1

Правило переделай, чтобы когда без слеша на конце - не открывалось (404).

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


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

, дело в том, что я в этом бом бом и это исправления Alaev'а, у него в блоге про это, нечего нет...


Нужно чтобы со слешом или без убирало первую страницу пагинации и на главной и в категориях...

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


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

А вот в engine/engine.php перед:


		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {
Добавить:

		if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1/') !== false) ) {
		$first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $first_page_url");
		die("Redirect");
		}
Помогите исправить...

 

 

Fixed version:

		if ( ($config['allow_alt_url'] == "yes") && (intval($_REQUEST['cstart']) == 1) ) {
		$first_page_url = str_replace ( array("/page/1/", "/page/1"), "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $first_page_url");
		die("Redirect");
		}

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


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

Перед первыми $ попробуй добавить "?" без кавычек.

UPD: Delete.

Изменено пользователем ge0r

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


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

 

А вот в engine/engine.php перед:




		if (($subaction == "showfull" or $subaction == "addcomment") and ((! isset ( $category ) or $category == ""))) {
Добавить:



		if ( ($config['allow_alt_url'] == "yes") && (intval($_GET['cstart']) == 1) && (strpos($_SERVER['REQUEST_URI'], '/page/1/') !== false) ) {
		$first_page_url = str_replace ( "/page/1", "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $first_page_url");
		die("Redirect");
		}
Помогите исправить...

 

Fixed version:



		if ( ($config['allow_alt_url'] == "yes") && (intval($_REQUEST['cstart']) == 1) ) {
		$first_page_url = str_replace ( array("/page/1/", "/page/1"), "", $_SERVER['REQUEST_URI'] );
		header("HTTP/1.0 301 Moved Permanently");
		header("Location: $first_page_url");
		die("Redirect");
		}

 

Не работает... страницу со словом Redirect отдаёт и всё...

 

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


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

А по-моему попробовал?

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


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

Баги DLE, а не кода, там оказывается они уже сделали редирект в категориях, но не правильно работает...

Если написать без слеша http://сайт.ру/main/page/1
То всё правильно делает редирект на http://сайт.ру/main/

 

Если написать со слэшом http://сайт.ру/main/page/1/
Выдаст ошибку и такое в адресной строке http://сайт.ру/D:/EleanorServ/www/сайт.ру/main/
Это на локалке, я проверял на хостинге, всё тоже самое, только директория другая)

А вот на главной что со слешом, что без, нечего не происходит, значит дубль.

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


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

А ещё index.php дублирует главную.

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


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

@ge0r, это я уже исправил :)

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


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...