Перейти к содержимому


Простенький модуль ЧПУ, версия 2


  • Вы не можете ответить в тему
Сообщений в теме: 155

#101 zrom

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 69 сообщений
Репутация: 16
Начинающий

Отправлено 08 May 2015 - 11:17 AM

после продолжительной работы появилась ошибка при вызове index.php?do=price, в котором ничего интересного
Спойлер


mod_fcgid: stderr: PHP Fatal error:  ob_start() [<a href='ref.outcontrol'>ref.outcontrol</a>]: Cannot use output buffering in output buffering display handlers in /var/www/user/data/www/user.ru/core/config/error_handler.php on line 29

output buffering стоит 0
когда из error_handler'а убрал ob_start(); в логах при повторном вызове index.php?do=price вылезло

mod_fcgid: stderr: PHP Fatal error:  Cannot redeclare category_replacer() (previously declared in /var/www/user/data/www/user.ru/index.php:166) in /var/www/user/data/www/user.ru/index.php on line 166

убирая из function replace_to_cpu category_replacer вылазит тоже самое по всем остальным функциям (products_replacer,page_replacer,news_replacer...), пока не убирается все, тогда работает. непойму как может быть previously declared в одной и той же строке...

ПО не обновлялось, локально все нормально, apache2-2.2.22, php5-5.3.10 as fastcgi, nginx-1.1.19
есть какие нибудь идеи что может быть?
  • 0

#102 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 May 2015 - 12:11 PM

Я так и не понял, в каких случаях происходит этот глюк.
Видимо, как-то неверно работают вложенные друг в друга ob_start() (в error_handler и index.php).
Обычно всегда делаю так, чтобы убрать проблему вообще:
============================
Не ошибка. Просто заменяем многострочное извращение с ob_start() на var_export(), появившийся в PHP5
Снимает проблему "белого экрана" в некоторых редких случаях.


function db_query($s) //database query

[...]

/*
ob_start();
var_dump($_GET);
var_dump($_POST);
$tmpa=ob_get_contents();
ob_end_clean();
$out .= $tmpa;
*/
$out .= var_export($_REQUEST,true);


====================================

Аналогично.


function error_reporting_log($error_num, $error_var, $error_file, $error_line) {

[...]

/*
ob_start();
var_dump($_GET);
var_dump($_POST);
$tmpa = ob_get_contents();
ob_end_clean();
$out .= $tmpa;
*/
$out .= var_export($_REQUEST,true);


непойму как может быть previously declared в одной и той же строке...

Мне при невозможности redeclare function помогает обычно такой финт:

15. в файле index_old.php заменяем


include("core/config/init.php");
include("core/includes/database/mysql.php");


на


# BEGIN SimpleFriendlyURL
#include("core/config/init.php");
#include("core/includes/database/mysql.php");
require_once "core/config/init.php";
require_once "core/includes/database/mysql.php";
# END SimpleFriendlyURL


Почему и в какой момент вдруг стало это требоваться я так и не понял. С версией PHP впрямую не связано. Видимо, влияет какая-то настройка PHP.

PS. Что за странное использование implode? В чем фишка?

echo implode("", file($fileToDownLoad));

  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#103 zrom

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 69 сообщений
Репутация: 16
Начинающий

Отправлено 08 May 2015 - 01:04 PM

помогло) вылезло правда потом
WARNING: preg_replace_callback() [<a href='function.preg-replace-callback'>function.preg-replace-callback</a>]: Requires argument 2, 'category_replacer', to be a valid callback
Line: 166
но по причине, что стояла версия 2.03, с подкинутым index.php 2.07

Почему и в какой момент вдруг стало это требоваться я так и не понял. С версией PHP впрямую не связано. Видимо, влияет какая-то настройка PHP.

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

PS. Что за странное использование implode? В чем фишка?


echo implode("", file($fileToDownLoad));

в ином случае отдает xml файл массивом, не разбирался. взято copy-paste методом с yandex.php
  • 0

#104 Salp

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 218 сообщений
Репутация: 54
Продвинутый

Отправлено 21 May 2015 - 11:25 AM

На странице с настройками и редиректами не хватает пагинации.
  • 0

#105 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 21 May 2015 - 01:11 PM

На странице с настройками и редиректами не хватает пагинации.

Не думаю, что она там нужна. Ибо если редиректов уже столько, что нужна пагинация, то надо не пагинацию делать, а думать, почему накопилось столько редиректов.

PS. Кроме редиректов можно использовать макросы. Это когда надо отредиректить, например, ВСЕ ссылки, где встречается строка /oldstring/ в /new/. Т.е. и /oldstring/aaa -> /new/aaa, и /oldstring/bbb -> /new/bbb, и /ccc/oldstring/ddd/ -> /ccc/new/ddd/
Сделано для ситуаций, когда надо заменить подстроку во всех ссылках и проставить редиректы со старого варианта на новый.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#106 Salp

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 218 сообщений
Репутация: 54
Продвинутый

Отправлено 15 July 2015 - 10:38 AM

4. в .htaccess есть строка "php_value output_buffering 0", она выключает буферизацию. Частенько хостер запрещает изменять эту настройку, а без нее ЧПУ не работает.

Самое интересное, что работает ))
  • 0

#107 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 20 July 2015 - 02:28 PM

У меня все хорошенько установилось.
Только чего то порвало весь шаблон((( Слетели стили

Где покопаться? Подскажите плиз.
  • 0

#108 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 20 July 2015 - 04:33 PM

Исправил сам! Косяк был в путях к файлам стилей
../ заменил на / и все заработало.
Спасибо за модуль! Буду юзать дальше.
  • 0

#109 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 23 July 2015 - 10:54 PM

Коллеги, подскажите.
У меня чпу ссылки генерируются. Все ок. Товары и категории доступны по новым ссылкам.
Но когда захожу по старой ссылке типа /product_XXX.html - товар тоже доступен и ссылка остается старой в адресной строке (не редиректится).
Та же история с категориями.
Так должно быть или это у меня косяк какой-то???
И если косяк, то где искать его?
Спасибо!
  • 0

#110 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 24 July 2015 - 10:28 AM

Так должно быть или это у меня косяк какой-то???

Это какой-то косяк. По старым ссылкам должен происходить редирект-301 на новые.

И если косяк, то где искать его?

Например, к такому приведет не закомментированная в .htaccess строка
RewriteRule ^product_([0-9]+)\.html$ index.php?productID=$1 [L]
Ну а в общем случае кто же знает... Телепатов тут нет.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#111 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 24 July 2015 - 05:40 PM

Телепатов видимо нет, а специалисты точно есть))))
Вы с первого раза абсолютно точно поставили диагноз этому косяку)))
Спасибо Вам!!! Теперь все ок!
  • 0

#112 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 10 August 2015 - 04:35 PM

Коллеги! Вот какой вопрос нашелся.
Гугл в панели вебмастеров выдает страницы типа
cat1/index.html
cat1/cat2/index.html
в разделе "Ошибки сканирования" как не найденные страницы (с ответом 404).
Я так понимаю генерируются страницы типа cat1/index.html?
И еще.В админку пускает только с главной страницы сайта. Если находишься на любой другой странице, то при попытке зайти в админку оно выдает ссылку типа /текущая категория/admin.html и ответ 404.

В чем может быть вопрос? Как исправить? Спасибо!

ПС. На всякий случай под хайдом .htaccess
Спойлер

  • 0

#113 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 August 2015 - 05:11 PM

И еще.В админку пускает только с главной страницы сайта. Если находишься на любой другой странице, то при попытке зайти в админку оно выдает ссылку типа /текущая категория/admin.html и ответ 404.

1. в шаблоне использована ссылка admin.html без слэша в начале, т.е. идущая от текущей страницы, а не от корня. Соответственно, на любой странице кроме корневой она будет в результате выглядеть как httр://сайт/страница/admin.html
2. в .htaccess маска редиректа задана как ^admin.html$, т.е. для строки, содержащей ТОЛЬКО admin.html, без чего либо еще в начале или конце.

PS. "админка" - это admin.php. Страницы admin.html в shopCMS штатно нет, это странная придумка шаблонописателя и к ЧПУ не имеет никакого отношения. Точнее, очень косвенное, т.к. в штатном варианте (без ЧПУ) просто нет страниц "не от корня".
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#114 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 10 August 2015 - 05:29 PM

Спасибо! Пофиксил вход в админку!!!
А эти страницы
cat1/index.html
cat1/cat2/index.html
по той же причине выдает?
  • 0

#115 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 August 2015 - 08:45 PM

А эти страницы cat1/index.html cat1/cat2/index.html по той же причине выдает?

Ну откуда же я знаю, по какой причине некие две ссылки с Вашего сайта недоступны Гуглу?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#116 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 10 August 2015 - 09:08 PM

Их не две!))) Выдало как ненайденные с ответом 404 ВСЕ страницы категорий и подкатегорий с дописанным в конце после слеша index.html
Получается эти страницы как-то генерируются сайтом что-ли?
  • 0

#117 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 August 2015 - 09:18 PM

Их не две!))) Выдало как ненайденные с ответом 404 ВСЕ страницы категорий и подкатегорий с дописанным в конце после слеша index.html

Логично спросить у Гугля, где он взял эти ссылки, а не в теме по ЧПУ-модулю.

Получается эти страницы как-то генерируются сайтом что-ли?

Хм. Странная логика. Мне кажется, что если по ним Error 404, то они отсутствуют, а не генерятся сайтом.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#118 etdnepr

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 101 сообщений
Репутация: 0
Начинающий

Отправлено 10 August 2015 - 09:47 PM

Получается эти страницы как-то генерируются сайтом что-ли?
Хм. Странная логика. Мне кажется, что если по ним Error 404, то они отсутствуют, а не генерятся сайтом.

Не правильно выразился))) Может правильнее сказать не страница генерируетсяя, а ссылка на категорию где-то генерируется с добавлением index.html
Гугль ссылку находит, а страницы естественно нет.
Они появились после установки ЧПУ


PS. По-моему разобрался. Посмотрим помогло или нет)))
  • 0

#119 NEViL

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 42 сообщений
Репутация: 4
Начинающий

Отправлено 14 August 2015 - 08:24 PM

Возникла такая проблема.... Перенёс сайт на другой хостинг... и теперь белый экран.... Попробовал index_old.php переименовать в index.php, а index.php соответственно убрать... сайт заработал, но соответственно нет ЧПУ.... И а админке не работает подменю "Общие настройки".... Долбить хостера? или может проблема в чём-то другом?.... на старом хостинге всё же работало как часики....

З.Ы. Сорри, может не в ту тему, просто файлы которые пробовал менять взяты от сюда ))))

..... а если ввести вашсайт\несуществующаяссылка то перенаправление на главную идёт как и должно

.................................................................................

Проблема решена с этого поста (заранее извините за сообщение в теме, день убил как только написал нашёл )))).... Но осталась проблема с "Общие настройки"... при клике на них Белый Экран !!!


.............. И это Решилось.... при переносе базы, лишний символ от куда-то взялся...
  • 0

#120 hedhedhed

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 4
Начинающий

Отправлено 21 August 2015 - 10:29 PM

...
  • 0