После установки Pretty Urls проблема со старыми ссылками

Автор muargos, 23 января 2013, 22:25:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

muargos

SMF 2.0 RC2 после установки Pretty Urls с русификатором http://dragomano.ru/page/pretty-urls новые переписанные ссылки работают нормально.

http://prius.pro/prius-forum-news/ - вот например. Даже если белиберду набрать кидает на морду: http://prius.pro/p456serjhnbm000seoirj

Проблема:

При заходе по старым оставленным где-нибудь ссылкам, типа http://prius.pro/index.php?topic=399.0

Фокс пишет:
ЦитироватьНеверное перенаправление на странице
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

А Хром:
ЦитироватьНа этой странице обнаружена циклическая переадресация
Загрузка веб-страницы по адресу http://prius.pro/index.php?topic=399.0 вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов. Если это не поможет, возможно, проблема связана не с вашим компьютером, а с конфигурацией сервера.
...
Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS): Обнаружено слишком много переадресаций.

В чём я провинился?


muargos

#1
 uglystupid
По-ходу накосячил в subs.php

Где в ./Sources/Subs.php строка?
// Maybe integrations want to change where we are heading?

у меня её нет.

А при установке мода её нужно найти и заменить на:

// Redirections should be pretty too
if (!empty($modSettings['pretty_enable_filters']))
{
global $sourcedir;
require_once($sourcedir . '/PrettyUrls-Filters.php');
$url = array(0 => array('url' => $setLocation, 'url_id' => 'setLocation'));
$filter_callbacks = unserialize($modSettings['pretty_filter_callbacks']);
foreach ($filter_callbacks as $callback)
{
$pretty_url = call_user_func($callback, $url);
if (isset($pretty_url[0]['replacement']))
break;
}
if (isset($pretty_url[0]['replacement']))
$setLocation = $pretty_url[0]['replacement'];
$setLocation = str_replace("\x12", '\'', $setLocation);
$setLocation = preg_replace(array('~;+|=;~', '~\?;~', '~\?#|;#|=#~', '~\?$|;$|#$|=$~'), array(';', '?', '#', ''), $setLocation);
}

// Maybe integrations want to change where we are heading?


Скажите в какое место её вставить, плз?

GeorG

Вставьте перед:
call_integration_hook('integrate_redirect', array(&$setLocation, &$refresh));
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

muargos


GeorG

А да у вас вообще версия RC2, не обратил внимания. Вообще вам бы обновить версию форума в срочном порядке.

Тогда видимо перед:
if (isset($modSettings['integrate_redirect']) && function_exists($modSettings['integrate_redirect']))
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

muargos

Ошибка сервера
На веб-сайте произошла ошибка при получении http://prius.pro/index.php. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
Вот несколько советов и рекомендаций:
Обновите эту страницу позже.
Ошибка HTTP 500 (Internal Server Error): При попытке сервера выполнить запрос возникла неожиданная ситуация.

GeorG

Попробуйте вставить перед:
// We send a Refresh header only in special cases because Location looks better. (and is quicker...)

Если не получится, то сносите...
Вообще, мод не рассчитан на вашу версию движка, он на стабильную 2.0.x
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

muargos


GeorG

Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

muargos

Заработало после вставки перед
// We send a Refresh header only in special cases because Location looks better. (and is quicker...)

после лёгкой доработки кода ;)

// Redirections should be pretty too
if (!empty($modSettings['pretty_enable_filters'])) {
global $sourcedir;
require_once($sourcedir . '/PrettyUrls-Filters.php');
$url = array(0 => array('url' => $setLocation, 'url_id' => 'setLocation'));
$filter_callbacks = unserialize($modSettings['pretty_filter_callbacks']);
foreach ($filter_callbacks as $callback) {
$pretty_url = call_user_func($callback, $url);
if (isset($pretty_url[0]['replacement'])) {
break;
}
}
if (isset($pretty_url[0]['replacement'])) {
$setLocation = $pretty_url[0]['replacement'];
}
$setLocation = str_replace("\x12", '\'', $setLocation);
$setLocation = preg_replace(array('~;+|=;~', '~\?;~', '~\?#|;#|=#~', '~\?$|;$|#$|=$~'), array(';', '?', '#', ''), $setLocation);

}


// Maybe integrations want to change where we are heading?


Спасибо огромное за помощь.