Откуда 302 редирект?
Привет!
Ребят, подскажите один момент…
На сайте откуда то появился 302 редирект. В каталоге перехожу на 3 страницу, обновляю страницу, редиректит на первую. В консоли написано 302 Found…
На обычной странице без mfilter, обычный вывод статей с пагинацией: перехожу на третью страницу и получаю редирект.
При этом, когда перехожу на вторую страницу — редиректа нет!!!
Что за беда? Кто знает?
Сначала сайт делал на digitalocean, там nginx… Потом перенес на sweb, там Apache… Но редирект появляется и на nginx'e.
Помогите понять:) На всякий случай ссылку даю…
Ребят, подскажите один момент…
На сайте откуда то появился 302 редирект. В каталоге перехожу на 3 страницу, обновляю страницу, редиректит на первую. В консоли написано 302 Found…
На обычной странице без mfilter, обычный вывод статей с пагинацией: перехожу на третью страницу и получаю редирект.
При этом, когда перехожу на вторую страницу — редиректа нет!!!
Что за беда? Кто знает?
Сначала сайт делал на digitalocean, там nginx… Потом перенес на sweb, там Apache… Но редирект появляется и на nginx'e.
Помогите понять:) На всякий случай ссылку даю…
Комментарии: 15
pdoPage редиректит с несуществующих страниц.
У тебя там что-то накручено с параметрами. Если указать limit — то всё работает.
У тебя там что-то накручено с параметрами. Если указать limit — то всё работает.
[[!pdoPage?
&element=`getTickets`
&tpl=`custom_tpl.Tickets.list.row`
&includeTVs=`article_pic`
&limit=`1`
]]
[[!+page.nav]]
Вот такой вызов… На других сайта все нормально вроде. Про какие параметры ты говоришь?..
Не знаю, проверяй свой шаблон, убирай всё подозрительное. Может у тебя там еще где-то есть пагинация и она мешает
Видно же, что моя ссылка работает.
Видно же, что моя ссылка работает.
Да… Извини) Сам виноват… Забыл &pageVarKey указать у второго вызова pdoPage
Столкнулчя с такой же проблемой. Не могу решить. limit не помогает. Вот ссылка на категорию
Кстати говоря, в mFilter2 нет параметра (напр. ?page=1) в ссылке на первую страницу, хотя по умолчанию пагинатор-то тоже pdoPage. Вот нужно такое повторить для сниппета pdoPage без связки с mFilter2. Если такое есть в параметрах, или где-то нужно указать в js скрипте – ткни пожалуйста носом.
Вот нужно такое повторить2000 рублей, оплачивать на моём сайте — bezumkin.ru
Василий, скажи пожалуйста, если сегодня оплачу, когда будет время сделать:
Нужно убрать ссылку с параметром (site.ru/link?page=1) на первую страницу, чтобы было так: (site.ru/link), на остальные – как обычно. Цель, чтобы не было редиректов 302/301.
Нужно убрать ссылку с параметром (site.ru/link?page=1) на первую страницу, чтобы было так: (site.ru/link), на остальные – как обычно. Цель, чтобы не было редиректов 302/301.
Ты пока разгонялся, уже вышла новая версия, где это сделано.
Смотри changelog версии 2.8.3-pl.
Смотри changelog версии 2.8.3-pl.
дело в том, что обновил, проверяю, ссылка на первую страницу с page=1 также есть, если отключаю ajaxMode, всё хорошо. Завел на modhost сегодня сайтик, чтобы проверить, мало ли, может что-то у меня, и вот:
Вызов сниппета такой:
Версия pdoTools 2.8.3-pl
Что я делаю не так?
Вызов сниппета такой:
<div id="pdopage">
<div class="rows">
[[!pdoPage?
&element=`pdoResources`
&parents=`0`
&ajaxMode=`default`
&tpl=`@INLINE <p>[[+idx]]. <a href="[[+link]]">[[+pagetitle]]</a></p>`
]]
</div>
[[!+page.nav]]
</div>
Версия pdoTools 2.8.3-pl
Что я делаю не так?
Василий, уже достал тебя, знаю, но не выходит у меня) Нашел файл с изменениями (pdopage.js) по умолчанию подключается к вызову pdopage.min.js, указал
Так выглядит ссылка на первую стр. при переходе на вторую (и последующие) страницы:
Вызов такой:
p.s. При отключенном ajaxMode всё хорошо. На сайте используется подгрузка по кнопке, пагинация скрыта от посетителей, но поисковые роботы всё равно видят в коде ссылку на первую страницу с параметром page=1
&frontend_js=`[[+assetsUrl]]js/pdopage.js`
Вот ссылка на первую страницу при первой загрузке страницы: Так выглядит ссылка на первую стр. при переходе на вторую (и последующие) страницы:
Вызов такой:
<div id="pdopage">
<div class="rows">
[[!pdoPage?
&element=`pdoResources`
&parents=`0`
&useWeblinkUrl=`1`
&ajaxMode=`default`
&ajaxHistory=``
&frontend_js=`[[+assetsUrl]]js/pdopage.js`
&tpl=`@INLINE <p>[[+idx]]. <a href="[[+link]]">[[+pagetitle]]</a></p>`
&tplPageWrapper=`@INLINE <ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>`
]]
</div>
[[!+page.nav]]
</div>
Что нужно сделать, чтобы page=1 не было? p.s. При отключенном ajaxMode всё хорошо. На сайте используется подгрузка по кнопке, пагинация скрыта от посетителей, но поисковые роботы всё равно видят в коде ссылку на первую страницу с параметром page=1
Здравствуйте, Василий Наумкин. У меня вопрос возникший с проблемой 302 редиректа у меня все сеошники придераются и просят сделать вместо него 301 пример страница /?page=1 в оригинальной версии компонента производит редирект 302 на каталог родитель. Я решил данную проблему путем правок исходников php данного компонента но при обновлении я понимаю что все мои правки слетят. Подскажите пожалуйста возможно ли сразу внести данные изминения в компонент или придется делать себе где то заметки и при каждом обновлении вручную править? Заранее благодарен за ответ. С Уважением Всеволод.
Была такая проблема с 302 редиректом для первой страницы:
<section class="row content">
<section class="col-lg-12 articles">
<div class="row"></div>
[[!pdoPage?
&parents=`3`
&ajaxMode=`default`
&tpl=`blog_tpl`
&includeTVs=`img_blog`
&limit=`3`
&includeContent=`1`
&tplPage=`@INLINE <li><a href="[[+href]]">[[+pageNo]]</a>`
&tplPageWrapper=`@INLINE <ul>[[+prev]][[+pages]][[+next]]</ul> `
&tplPageActive=`@INLINE <li class="active"><a href="[[+href]]">[[+pageNo]]</a>`
&tplPagePrev=`@INLINE <li class="first"><a href="[[+href]]"><i class="icon arrow-menu"></i></a></li>`
&tplPageNext=`@INLINE <li class="last"><a href="[[+href]]"><i class="icon ico-pag"></i></a></li>`
&tplPagePrevEmpty=`@INLINE <li class="disabled"><</li>`
&tplPageNextEmpty=`@INLINE <li class="disabled">></i></li>`
]]
<div class="row pagination">
<div class="col-lg-12">
[[!+page.nav]]
</div>
</div>
</section>
</section>
И в итоге в перелинковке 302 редирект. От него решили не избавляться, а просто убрать из перелинковки "/?page=1". В моём случае надо было убрать &ajaxMode=`default`<section class="row content">
<section class="col-lg-12 articles">
<div class="row"></div>
[[!pdoPage?
&parents=`3`
&tpl=`blog_tpl`
&includeTVs=`img_blog`
&limit=`3`
&includeContent=`1`
&tplPage=`@INLINE <li><a href="[[+href]]">[[+pageNo]]</a>`
&tplPageWrapper=`@INLINE <ul>[[+prev]][[+pages]][[+next]]</ul> `
&tplPageActive=`@INLINE <li class="active"><a href="[[+href]]">[[+pageNo]]</a>`
&tplPagePrev=`@INLINE <li class="first"><a href="[[+href]]"><i class="icon arrow-menu"></i></a></li>`
&tplPageNext=`@INLINE <li class="last"><a href="[[+href]]"><i class="icon ico-pag"></i></a></li>`
&tplPagePrevEmpty=`@INLINE <li class="disabled"><</li>`
&tplPageNextEmpty=`@INLINE <li class="disabled">></i></li>`
]]
<div class="row pagination">
<div class="col-lg-12">
[[!+page.nav]]
</div>
</div>
</section>
</section>
И больше в перелинковке не было 302 редиректа для page=1 при использовании pdopage. А вы так понимаю изменяли в исходниках с 302 на 301? Почему сразу в pdopage по умолчанию в компоненте не использовать 301?
Чтобы поменять 302 редирект на 301, не правя исходники и с сохранением возможности обновления pdoTools, нужно:
1. Создать в системных настройках modx настройку pdoPage.class со значением pdotools.pdopagecustom joxi.ru/Dr8ygaRhoEYjgm
2. Создать в папке core/components/pdotools/model/pdotools файл pdopagecustom.class.php со следующим содержимым:
1. Создать в системных настройках modx настройку pdoPage.class со значением pdotools.pdopagecustom joxi.ru/Dr8ygaRhoEYjgm
2. Создать в папке core/components/pdotools/model/pdotools файл pdopagecustom.class.php со следующим содержимым:
<?php
require_once MODX_CORE_PATH . 'components/pdotools/model/pdotools/pdopage.class.php';
class pdoPageCustom extends pdoPage
{
/** @var modX $modx */
public $modx;
/** @var pdoTools $pdoTools */
public $pdoTools;
/** @var string $req_var */
protected $req_var = '';
/**
* @param modX $modx
* @param array $config
*/
public function __construct(modX & $modx, $config = array())
{
$this->modx = &$modx;
$fqn = $modx->getOption('pdoTools.class', null, 'pdotools.pdotools', true);
$path = $modx->getOption('pdotools_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
if ($pdoClass = $modx->loadClass($fqn, $path, false, true)) {
$this->pdoTools = new $pdoClass($modx, $config);
} else {
return;
}
$modx->lexicon->load('pdotools:pdopage');
}
/**
* Redirect user to the first page of pagination
*
* @param $isAjax
*
* @return string
*/
public function redirectToFirst($isAjax = false)
{
unset($_GET[$this->pdoTools->config['pageVarKey']]);
unset($_GET[$this->modx->getOption('request_param_alias', null, 'q')]);
if (!$isAjax) {
$this->modx->sendRedirect(
$this->modx->makeUrl(
$this->modx->resource->id,
$this->modx->context->key,
$_GET,
'full'
),
array('responseCode' => 'HTTP/1.1 301 Moved Permanently')
);
return '';
} else {
$_GET[$this->pdoTools->config['pageVarKey']] = 1;
$_REQUEST = $_GET;
return $this->pdoTools->runSnippet('pdoPage', $this->pdoTools->config);
}
}
}
В функции redirectToFirst добавлен 301 редирект.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.