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

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

Анализирую ошибки сайта в Яндекс-Вебместере, обнаружил, что есть сотни ошибок связанных с дублями страниц вида

/page/xxx и page/xxx/

/tags/tagname и /tags/tagname/

/tags/tagname/page/xxx и /tags/tagname/page/xxx/

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

 

собственно, вопрос: есть ли какие то изящные методы решить эту проблему, чтобы не строить костыли в engine.php, сравнивая текущий урл и правильный, и добавляя canonical или редирект 301

 

спасибо :)

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

Анализирую ошибки сайта в Яндекс-Вебместере, обнаружил, что есть сотни ошибок связанных с дублями страниц вида

/page/xxx и page/xxx/

/tags/tagname и /tags/tagname/

/tags/tagname/page/xxx и /tags/tagname/page/xxx/

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

 

собственно, вопрос: есть ли какие то изящные методы решить эту проблему, чтобы не строить костыли в engine.php, сравнивая текущий урл и правильный, и добавляя canonical или редирект 301

 

спасибо :)

лично я, использую такое решение в .htaccess причём уже давно

 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.xml$
RewriteRule (.+) $1/ [R=301,L] 

 

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

вариант, спасибо

надо будет только переделать под nginx

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

вариант, спасибо

надо будет только переделать под nginx

В новой версии пофиксили уже багу, обновляйтесь.

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

в новой версии правил для вебсервера или в самом движке? :)

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

в новой версии правил для вебсервера или в самом движке? :)

в самом движке http://dle-news.ru/release/1705-datalife-engine-v112-final-release.html#sel=63:1,63:65

но там речь немного о другом.

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

да, в пагинации категорий работает отлично
в тэгах не работает

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

в общем, добавил в раздел TAGS engine.php по аналогии с категориями. теперь работает как нужно

			$re_cat = urlencode ($tag);
			if( $config['allow_alt_url'] AND $config['seo_control'] AND $re_cat!="" AND $view_template != "rss") {
				if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) {	
					$re_url = "/tags/";
					if(substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' AND $_GET['cstart'] AND $_GET['cstart'] != 1 ) {
					 $re_cat .= "/page/".intval($_GET['cstart']);
					} 
					
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}{$re_cat}/");
					die("Redirect");
				}
			}

 

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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