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


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


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

#341 badisoft

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

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

Отправлено 01 November 2012 - 08:58 PM

Спасибо за ответ, буду разбираться.

\
Что-то мне подсказывает, что в ссылке http://ledflashlight...mg/arrow_up.png есть куча лишнего текста, вызваного написанием исходной ссылки без слэша в начале ссылки, т.е. поиском картинки arrow_up.png по ОТНОСИТЕЛЬНОМУ пути.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#342 grek

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

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

Отправлено 06 November 2012 - 08:40 PM

Спасибо за модуль! Только вот столкнулся с проблемой. Категории и под-категории уникальны, а в товаре сплошь и рядом одинаковые названия причем в одной категории. Поэтому после установки модуля, рядом стоящие две единицы товара с одинаковыми названиями начинают "плясать" то у одной при детальном просмотре показывается фото и описание с другой, то наоборот...
Можно ли сделать так, что бы к названию товара добавлялся его ID(дабы уникализировать названия товара с помощью ID, а названия категории,подкатегории оставались как и сейчас
Например,есть _mysite.com/benzopily/benzopila-les-russkij.html а хочется _mysite.com/benzopily/benzopila-les-russkij-321.html
Где 321 (ID товара) либо, что еще лучше, это код товара (он есть у всех товаров и уникальный)
Заранее спасибо за ответы
  • 0

#343 badisoft

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

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

Отправлено 06 November 2012 - 09:24 PM

Можно ли сделать так, что бы к названию товара добавлялся его ID(дабы уникализировать названия товара с помощью ID, а названия категории,подкатегории оставались как и сейчас

Можно. В одной из старых версий ЧПУ (см. подкаталог old_version в архиве) именно так и сделано. Посмотрите, как сделано там и сделайте так же.

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

#344 grek

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

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

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

Можно ли сделать так, что бы к названию товара добавлялся его ID(дабы уникализировать названия товара с помощью ID, а названия категории,подкатегории оставались как и сейчас

Можно. В одной из старых версий ЧПУ (см. подкаталог old_version в архиве) именно так и сделано. Посмотрите, как сделано там и сделайте так же.

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


Поставил old_versions\cat_cat_id_version, но после установки при выполнении http://ваш-сайт/sitemap.php
появляется вот такое окно
[img][IMG]http://i48.fastpic.ru/thumb/2012/1107/9b/7f321824258a3d21d59aa4ff6216d29b.jpeg[/img][/img]
Табличка xxxx_currency_types при этом не создается

При это ссылки категорий и подкатегорий выглядели как и при обычном ЧПУ а вот ссылки на товар выглядели вот так:
мойсайт/gggўgҐggЁgg/gЋgЎg±gЁg¤gЁg g/188.html
или вот так
мойсайт/ggЄgg gegҐggЁgї/ggЄgg gegҐggЁgї-g?g g¬gЎg gg /2140.html
Пробовал файл sitemap.php сохранять в разные кодировки - не помогло
Подскажите куда копать?

Прикрепленные файлы

  • Прикрепленный файл  1.jpg   305.1К   18 Количество загрузок:

  • 0

#345 badisoft

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

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

Отправлено 07 November 2012 - 12:15 AM

Подскажите куда копать?

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

#346 KadJen

    Новичок

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

Отправлено 19 November 2012 - 03:46 PM

Уважаемый badisoft, у меня такой вопрос.
После того как я установил ваш скрипт ЧПУ, он сформулировал базу ЧПУ. После того, как создам новые страницы или страницы с товарами (возникает потребность в генерации новых URL). Подскажите пожалуйста, когда Ваш скрипт генерит эти новые ЧПУ? В момент создания новых страниц или в тот момент, когда я к ним обращаюсь через сайт (как обычный пользователь)?
За модуль ЧПУ большее спасибо, крайне полезен.
  • 0

#347 badisoft

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

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

Отправлено 19 November 2012 - 04:33 PM

После того, как создам новые страницы или страницы с товарами (возникает потребность в генерации новых URL). Подскажите пожалуйста, когда Ваш скрипт генерит эти новые ЧПУ? В момент создания новых страниц или в тот момент, когда я к ним обращаюсь через сайт (как обычный пользователь)?

1. В момент вывода странички, где присутствует товар/категория/новость/статическая страница происходит создание (пересоздание) всех ЧПУ-ссылок для этой страницы и запись их в SQL-табличку. Другими словами, "в тот момент, когда я к ним обращаюсь через сайт (как обычный пользователь)"

2. В момент генерации sitemap.xml происходит создание (пересоздание) ЧПУ-ссылок ВСЕХ категорий, товаров, новостей, страниц, а таже редиректов с категорий без "/" и остального без ".html" на конце.

Подчеркиваю, редиректы генерятся только при запросе sitemap.xml (т.е. при исполнении sitemap.php), а при обращении к странице генерируется только основная ЧПУ-ссылка.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#348 KadJen

    Новичок

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

Отправлено 19 November 2012 - 05:39 PM

Подчеркиваю, редиректы генерируется только при запросе sitemap.xml (т.е. при исполнении sitemap.php), а при обращении к странице генерируется только основная ЧПУ-ссылка


Я правильно Вас понял, если я обновляю базу своего сайта (при этом добавляется порядка несколько сотен новых позиций), то чтоб все корректно работало, создались ЧПУ к новым товарам и редиректы, то мне после каждого обновления базы необходимо обращаться к sitemap.xml (т.е. sitemap.php)?
  • 0

#349 badisoft

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

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

Отправлено 19 November 2012 - 06:26 PM

Чтобы создались редиректы с ошибочных URL-ов - да. Чтобы создались собственно сами ЧПУ-ссылки - нет, они и так создадутся.

Я до сих пор так нигде и не прочитал ничего внятного, почему для ссылки bla-bla-bla/ надо обязательно создавать 301-й редирект с bla-bla-bla, т.е. с заведомо ошибочного написания ссылки. Почему именно с такого ошибочного, а не с сотен других возможных вариантов. Но сделать было не сложно, поэтому сделано. Ну а то же самое с ".html" оно и вообще "до кучи за компанию" написано. Так что если вам обязательно надо, чтобы "неверные" ссылки честно отрабатывались 301-м редиректом, то да, надо генерить sitemap.xml. Если же достаточно обычной работы ЧПУ, то ничего делать не надо, само сделается в index.php при первой же загрузке пользовательской (!) страницы с новыми категориями, товарами, etc...

PS. Можно и генерацию редиректов в index.php вынести, тогда вообще все автоматом будет. Я не стал этого делать, т.к. надобность этих редиректов, на мой взгляд, ничтожна, а количество добавочных запросов к базе (и так не маленькое при насыщенности страницы ЧПУ-шными ссылками) это удвоит.

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

#350 grek

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

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

Отправлено 27 November 2012 - 03:20 PM

Всем добрый день!
Решил перейти на другой домен. Дабы не потерять ссылки на старом, поставил постраничный 301 редирект

RewriteEngine on
RedirectMatch 301 ^/(.*)$ http://old.site/$1
RewriteRule (.*) http://www.new.site/$1 [R=301,L]
Так вот когда идет редирект со старого на новый сайт в адресной строке нового добавляются index.php?cpu=/
Ввожу
old.site/konfety-kluchik/
Вижу вот это
new.site/index.php?cpu=/konfety-kluchik/
Как в данном случае получить постраничную переадресацию соответственно без добавления в адресной строке index.php?cpu=/

P.S.Если набрать на старом без слеша в конце - переброс идет корректный
Но это касается только разделов и подразделов
Товары же отображается с добавкой index.php?cpu=
new.site/index.php?cpu=/sladkoe/konfety_kluchik/zolotoi-kluchik-moskva.html
  • 0

#351 badisoft

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

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

Отправлено 27 November 2012 - 06:51 PM

Как в данном случае получить постраничную переадресацию соответственно без добавления в адресной строке index.php?cpu=/

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

PS. Хотя... Минутное решение - не добавлять никаких редиректов .htaccess, а тупо вставить редирект-301 в index.php.
Т.е. что-то типа:

if (домен = "старый домен") {редирект-301 на "новый домен".GET['cpu'] }

Ну а для ссылки с новым доменом все будет работать по старому алгоритму, как обычно.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#352 qantas

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

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 2
Начинающий

Отправлено 29 November 2012 - 11:44 AM

Подскажите, как можно реализовать генерацию URL только в нижнем регистре, например: есть категория iPhone, автоматически создается site.com/iPhone/, а мне нужно site.com/iphone/ ?
  • 0
Дизайн и создание сайтов http://elychagin.com

#353 Dbus

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

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

Отправлено 29 November 2012 - 11:55 AM

Подскажите, как можно реализовать генерацию URL только в нижнем регистре, например: есть категория iPhone, автоматически создается site.com/iPhone/, а мне нужно site.com/iphone/ ?

http://www.php.su/functions/?strtolower
  • 0
502 Bad Gateway

#354 qantas

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

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 2
Начинающий

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

Подскажите, как можно реализовать генерацию URL только в нижнем регистре, например: есть категория iPhone, автоматически создается site.com/iPhone/, а мне нужно site.com/iphone/ ?

http://www.php.su/fu...ons/?strtolower

еще бы узнать куда это вставить.
  • 0
Дизайн и создание сайтов http://elychagin.com

#355 Dbus

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

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

Отправлено 29 November 2012 - 12:13 PM

Ты же подсказку просил, а не готовое решение :)
  • 0
502 Bad Gateway

#356 qantas

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

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 2
Начинающий

Отправлено 29 November 2012 - 12:48 PM

Ты же подсказку просил, а не готовое решение :)

:D верно. Хотелось бы готовое решение или хотя бы натолкнуть куда и как вставлять.
  • 0
Дизайн и создание сайтов http://elychagin.com

#357 Dbus

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

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

Отправлено 29 November 2012 - 01:03 PM

в index.php в самом низу замени

return strtr($content,$replace);

на


return strtolower(strtr($content,$replace));


это так, в лоб. может автор более оригинальное решение предложит :)
  • 1
502 Bad Gateway

#358 qantas

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

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 2
Начинающий

Отправлено 29 November 2012 - 01:21 PM

Dbus, благодарю. Разобрался теперь. В файле cpu/cpu_functions.php заменил:
return strtr(html_entity_decode($str,ENT_QUOTES),$tr);
на
return strtolower(strtr(html_entity_decode($str,ENT_QUOTES),$tr));
и
return $cpu;
на
return strtolower($cpu);
и все заработало как надо. Еще раз спасибо за помощь. :)
  • 0
Дизайн и создание сайтов http://elychagin.com

#359 badisoft

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

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

Отправлено 29 November 2012 - 02:58 PM

Подскажите, как можно реализовать генерацию URL только в нижнем регистре

В cpu/cpu_functions.php есть функция function translit($str). Замените в ней трансляцию больших русских в большие английские на трансляцию в маленькие. ИМХО, там совершенно очевидно, как это сделать.

PS. Я тормоз. Вам же английские большие в малые надо. Тогда да, strtolower.

PPS. strtolower($cpu) - излишне. В $cpu находится обработанная в translit() строка, т.е. она УЖЕ переведена в нижний регистр первым исправлением.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#360 fastik

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

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 05 December 2012 - 09:59 AM

Пытаюсь поставить, но

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@blablabla.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Если убираю .htaccess, то главная грузится, ссылки переименованы, но


Not Found

The requested URL /garantiya.html was not found on this server. Apache/2.2.3 (CentOS) Server at rcmtoys.ru Port 80
Где трабла не пойму. Apache/2.2.3 (CentOS) Server at rcmtoys.ru Port 80
  • 0