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


Простейший модуль ЧПУ


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

#221 Dbus

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

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 10 April 2012 - 07:43 PM

вопщем, получается что косячит, если в коде встречается ссылка, которая формируется по типу
product_{$product_info.productID}.html
что естественно, сразу же цепляется скриптом чпу.
у меня такие линки обнаружились в кодах ссылки для фейсбука и Ок, и самое прискорбное - кнопки предыдущего и следующего товара...
можно, конечно, поменять на
index.php?productID={$next_productID}
или есть другое решение, которого я не вижу ?

UPD. Немного вникнув в код index.php, я понял...
сделал паттерн по типу PRODUCT_PATTERN, слегка переназвав и подправив ссылки, выборку из базы оставил ту же.
с предыдущим и следующим товаром разобрался, для социальных сетей можно сделать аналогично. главное, чтоб не дублировались ссылки на одной странице, а то опять полезет...
  • 0
502 Bad Gateway

#222 badisoft

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

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

Отправлено 10 April 2012 - 08:25 PM

у меня такие линки обнаружились в кодах ссылки для фейсбука и Ок, и самое прискорбное - кнопки предыдущего и следующего товара...

Подозреваю, что достаточно будет в index.php добавить еще один реврайт - "product_" => "/product_"

Завтра найду и поставлю себе эти кнопки "следующий товар/предыдущий товар" - посмотрю, что там творится.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#223 Dbus

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

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 10 April 2012 - 09:12 PM

Подозреваю, что достаточно будет в index.php добавить еще один реврайт - "product_" => "/product_"


Да, ты прав, так проще :)
для предыдущего и следующего товара этого достаточно.
Если есть еще линки - их придется тоже как-то переназвать и добавить в массив, правда, каждую отдельно.
  • 0
502 Bad Gateway

#224 badisoft

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

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

Отправлено 10 April 2012 - 09:19 PM

Если есть еще линки - их придется тоже как-то переназвать и добавить в массив, правда, каждую отдельно.

Не очень понял. Внешние линки этой проблемой не страдают, т.к. содержат полный URL, а не только каталог-файл. Ну а внутренние - у тебя их десятки, чтоли, разнообразных? Т.е. не подпадающих началом линка под какой-либо шаблон? :)

Пока их (сторонних) набралось три штуки - stati от модуля Статьи, devsearch от модуля Живой поиски и вот теперь еще product_ от модуля Следующий-Предыдущий-товар. Ну, может еще пяток наберется с других модулей в будущем.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#225 Dbus

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

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 10 April 2012 - 09:42 PM

Не очень понял. Внешние линки этой проблемой не страдают, т.к. содержат полный URL, а не только каталог-файл. Ну а внутренние - у тебя их десятки, чтоли, разнообразных? Т.е. не подпадающих началом линка под какой-либо шаблон?

не, ссылка в странице на нее же саму, которая передается как адрес текущей страницы в тот же фейсбук...
походу если она повторяется - вылезает этот косяк. я еще помедитирую над этим в свободное время, чето каша в голове :)
  • 0
502 Bad Gateway

#226 badisoft

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

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

Отправлено 10 April 2012 - 11:39 PM

ссылка в странице на нее же саму, которая передается как адрес текущей страницы в тот же фейсбук..

У меня она передается вот так, я никаких действий по смене ссылки не предпринимаю, само сразу правильно. Видимо, яндексовый скрипт вылавливает уже ЧПУ-шную ссылку.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#227 pit4l

    Пользователь

  • Пользователи
  • PipPip
  • 10 сообщений
Репутация: 2
Начинающий

Отправлено 11 April 2012 - 04:59 PM

Спасибо за модуль.
Столкунулся с такой штукой. Не работает на Мастерхосте. Sitemap.php генерит правильные ссылки, а index.php выдает следующее: ссылка_ЧПУ/category_2.html или ссылка_ЧПУ/product_235.html, У Мастерхоста для установки Zend'a используется php-cgi. Вероятно при этом не отключается сжатие Gzip. Как его отключить или в какую сторону копать для поиска причины. На локалхосте и другом хостинге все работает сразу.
  • 1

#228 badisoft

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

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

Отправлено 11 April 2012 - 06:50 PM

index.php выдает следующее: ссылка_ЧПУ/category_2.html или ссылка_ЧПУ/product_235.html, У Мастерхоста для установки Zend'a используется php-cgi. Вероятно при этом не отключается сжатие Gzip

Опана! Как интересно-то! :) В файле core/config/headers.php присутствует код:
		if (@extension_loaded('zlib') && CONF_USE_GZIP) {
@ini_set('zlib.output_compression_level', 9);
// ob_end_flush();
ob_start('ob_gzhandler');
}

Т.е. если "компрессия GZip" в конфиге ShopCMS включена, то мы устанавливаем уровень компрессии в девятку - максимальный, насколько помню, - а вот если выключена, то компрессия вовсе не выключается, а ОСТАЕТСЯ такой, какая установлена по умолчанию на хостинге (zlib.output_compression=xxx в php.ini). Дефолтово для всех PHP что я видел (немного, честно скажу :)). там стоит Off, оно и логично. Но хостер может иметь свое мнение по поводу этой настройки по дефолту. Что, видимо, и происходит.

Короче, попробуйте в начале index.php, где-нибудь сразу после require_once вставить строку
ini_set('zlib.output_compression_level', 0);
Подозреваю, это поможет.
А я постараюсь этот момент в ближайшее время отразить в исходнике.
Наверное, это наиболее правильный вариант и есть, но, возможно, есть какой-то более правильный и корректный - надо разобраться.

PS. я хоть и в Питере, а Мастерхост в Москве, но бежал бы я от этого говнохостера семимильными шагами... Не от "такого" хостера, а именно от Мастерхоста. Уж больно одиозный хостер, им админы детей пугают вместо Барабашки :).

PPS. Спасибо! Новые знания в копилочку об этой CMS, да и вообще о хостерах :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#229 Dbus

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

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 11 April 2012 - 08:26 PM

таак, а я вот тут недопонял... а чем мешает компрессия ?
  • 0
502 Bad Gateway

#230 badisoft

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

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

Отправлено 11 April 2012 - 09:18 PM

таак, а я вот тут недопонял... а чем мешает компрессия ?

Тем, что в буфере (откуда берется обрабатываемый контент, где подменяются ссылки) будет зазипованное содержимое.
Эта "компрессия GZip", по хорошему, нахрен не сдалась, т.к. и апач, и нгинкс прекрасно зипуют проходящий поток ВЕСЬ, а не только результат исполнения PHP-кода.

Другими словами, сжимать передаваемое к клиенту можно в разные моменты и на разных уровнях исполнения. Так вот сжимать выхлоп на уровне исполнения PHP-кода - самое, на мой взгляд, не оптимальное. Собственно, оно потому по дефолту и выключено. Как мне кажется.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#231 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 11 April 2012 - 09:21 PM

В общих настройках магазина есть галка

Потоковое сжатие (gzip)

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


  • 0

#232 badisoft

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

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

Отправлено 11 April 2012 - 09:42 PM

В общих настройках магазина есть галка

Ты это к чему? :)
Эта "галка" автоматически выключается при первом же запуске sitemap.php, это ж в настройках галка, а в реальности просто единичка или ноль в табличке что-то-там-settings, чтоли. А фраза, которая при этой галке стоит устарела донельзя. Компы стали мощнее, т.е. по барабану, надо распаковывать трафик или нет. Каналы стали шире, т.е. по барабану, сколько там через этот канал прокачивается, одну десятую секунды от двух десятых никто не отличит, а это +100кбайт на жалком соединении в 10Мбит. А уж на фоне всяких там ява-библиотек килобайт на 100-200-300 (которые не попадают в ЭТУ упаковку) использование ZLIB, ужимающей чисто PHP-трафик, который и так минимален вообще смешно выглядит. Про то, что апач/нгинкс штатно умеют поток жать (весь, любой, настраиваемо) я уже писал.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#233 pit4l

    Пользователь

  • Пользователи
  • PipPip
  • 10 сообщений
Репутация: 2
Начинающий

Отправлено 13 April 2012 - 01:33 PM

Возвращаясь к мастерхосту :angry: . Дело оказалось не совсем в компрессии. По phpinfo выходило, что она отключена. А причина неработоспособности ЧПУ была в параметре "output_buffering = 4096" в php.ini. При отключении, т.е. "output_buffering = off" все заработало. И вроде как даже побыстрее, чем с включенной буферизацией.

И образовался такой вопрос. А как быть с сылками Яндекс.Маркет? В оригинале движок магазина генерит ссылки вида index.php?productID=1 независимо от того, включено преобразование ссылок или нет. Т.е. все посетители с маркета сначала попадают на страницу вида index.php?productID=1, а уже потом, на каком-то шаге кликанья по ссылкам сайта попадают на ЧПУ. Это плохо или безразлично для индексации?
  • 0

#234 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 13 April 2012 - 01:42 PM

Т.е. все посетители с маркета сначала попадают на страницу вида index.php?productID=1, а уже потом, на каком-то шаге кликанья по ссылкам сайта попадают на ЧПУ. Это плохо или безразлично для индексации?


Да пофиг на какую страницу попадают пользователи. Главное чтобы ссылки которые ВИДЯТ ПОИСКОВИКИ были ЧПУ.
Если в Ямаркете открыта индексация ссылок, то это плохо, но на это никак не повлияешь и врядли она открыта.
А то что пользователь попадает на ссылку вида index.php?productID=1 никакого отношения к индексации поисковиками не имеет.
  • 0

#235 badisoft

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

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

Отправлено 13 April 2012 - 02:05 PM

А причина неработоспособности ЧПУ была в параметре "output_buffering = 4096" в php.ini. При отключении, т.е. "output_buffering = off" все заработало

Оно и так должно работать, т.к. в .htaccess есть строка "php_value output_buffering 0", но некоторые провайдеры запрещают php_value в .htaccess. Добавил описание проблемы в шапку.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#236 pit4l

    Пользователь

  • Пользователи
  • PipPip
  • 10 сообщений
Репутация: 2
Начинающий

Отправлено 13 April 2012 - 04:24 PM

Да, похоже что все php_value из .htaccess игнорировались. Я правил напрямую в php.ini, только тогда заработало. Кучу времени потратил, пока до этого дошел.
  • 1

#237 badisoft

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

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

Отправлено 13 April 2012 - 05:21 PM

Да, похоже что все php_value из .htaccess игнорировались.

(задумчиво) Apache ли там вообще бэкендом? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#238 pit4l

    Пользователь

  • Пользователи
  • PipPip
  • 10 сообщений
Репутация: 2
Начинающий

Отправлено 14 April 2012 - 11:04 AM

По идее используется nginx + cgi php. Еще в контрольной панели можно выбрать оптимизацию для статического или динамического контента, но что при этом переключается не знаю.
  • 0

#239 vassanni

    Новичок

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

Отправлено 14 April 2012 - 11:40 AM

сайт ooo-rada.ru

Добавил sitemap.xml в панель вебмастера яшки и гугла.

В гугле получил сведения об ошибках:
Тип: Ошибки
Ошибка: Неверное значение тега
Описание: Тег XML имеет недопустимое значение. Исправьте его и повторите передачу.
Количество проблем: 2
Пример: Родительский тег: url
Тег: changefreq.

Родительский тег: url
Тег: priority
Строка: 162

Всё генерируется автоматом, подскажите в чём проблема.

Жду отчета сканирования яндексом.
  • 0

#240 badisoft

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

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

Отправлено 14 April 2012 - 08:17 PM

Всё генерируется автоматом, подскажите в чём проблема.

В моей ошибке. Не везде сменил 'stati' на 'articles' в названии ключа массива.
можете заменить сами в файле sitemap.php, там две замены в самом конце, а можете скачать исправленную версию.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)