Урок 9. ЧПУ. Вариант 2

Чтобы иметь доступ к просмотру всех уроков этого курса, оформите подписку в премиум раздел
каталог товаров

От автора: в предыдущем уроке нами были реализованы ЧПУ, которые позволяли обращаться к товарам и категориям по их номерам (ID). Да, мы исключили явные GET-параметры в адресах, заменив их на нужный нам вид, однако, от этого данные адреса вряд ли стали более понятными для человека.

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

lesson

Все уроки курса:

Метки: ,

Комментарии (20)

  1. mag

    Кто сделал ЧПУ для категорий?

    • Андрей Кудлай

      А в чем сложность?

      • mag

        И в правду. не сложно

        • Андрей Кудлай

          Отлично!)

          • Евгений

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

          • Евгений

            Просто, этот урок показывает сорсы, до приведению всего кода к MVC.
            Извините что в двух комментариях, в первом тупанал

          • Андрей Кудлай

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

          • Евгений

            Да нет, (( в том-то и дело что не понял. Как узнать все данные по алиасу, вы говорили в уроке ЧПУ2 (если не ошибаюсь). Но у меня, массив $_GET возвращается пустым. не могли бы вы поч с решением. Зарание благодарю

          • Андрей Кудлай

            Возможно и мог бы помочь… но пока не увижу код — это просто невозможно)
            Создайте тему на нашем форуме, дайте ссылку на ваш проект, чтобы можно было что-то увидеть.

          • Евгений

            Создал тему на форуме (http://webformyself.com/forum/index.php/topic/1962/), описал проблему. Спасибо за быстрые ответы.

  2. Алексей

    Доброго времени суток!

    возникла такая проблема…

    Например если я нахожусь на странице:
    site.ru/category/1

    при переходе по такой ссылке

    link
    в адресной строке добавляется GET параметр (из-за [QSA] но он нужен для постраничной навигации):
    site.ru/category/1?view=category&category=1

    а если еще раз нажать на
    link
    появляется еще дубль и так до бесконечности…
    site.ru/category/1?view=category&category=1&view=category&category=1

    и эти параметры добавляются при переходе на любую ссылку….

    как удалить эти параметры,что необходимо прописать в htaccess?

    в htaccess я прописал:
    RewriteRule ^category/(\d+)/?$ index.php?view=category&category=$1 [QSA]

    С уважением,Алексей!

    • Андрей Кудлай

      Здравствуйте.
      Непонятно, зачем вам get-параметры в ссылке, если они уже перечислены через слеш. Насколько я помню, все get-параметры были удалены еще в первом уроке. Удаляются они не в htaccess, а в коде приложения (внимательнее посмотрите первый урок ЧПУ, примерно на 49-ой минуте мы изменяем ссылку для категорий). Т.е. ссылки в приложении должны быть не такими — site.ru/category/1?view=category&category=1, а такими — site.ru/category/1.
      Если останутся какие-то вопросы или что-то не будет получаться, тогда создайте тему на форуме и опишите с выкладкой кода, потому что решать проблемы, связанные с кодом, в комментариях неудобно.

  3. Lev

    Спасибо за урок! Как всегда все хорошо и понятно изложено.

  4. Владимир

    Лучший сайт по web программированию!!!!!!!

  5. klyukvin

    Не смог найти тему, напишу сюда: Меня интересует вопрос о редиректе со старой ссылки на новую(ЧПУ), вот с такой site.ru/about.php на такую site.ru/about.
    Или еще может быть подходящий пример, когда ужу готовы чпу-ссылки с getпараметрами: site.ru/catalog.php?category=11 мы меняем на site.ru/category/women, но старая ссылка также доступна и работает. Собственно вопрос — нужно ли делать редирект в таком случае, чтобы избежать дублей страниц, и можно ли закрыть ссылки с getпараметрами от индексации например в robot.txt или еще где-нибудь

    • Андрей Кудлай

      Для решения проблемы дублей достаточно использовать канонические URL.

      • klyukvin

        спасибо! буду разбираться, еще такой вопрос, если закрыть в robots.txt ссылку вот так Disallow: *category=* то поисковики не будут индексировать ссылки с таким getпараметром, а проиндексируют ссылку ЧПУ site.ru/category/xxxx, надеюсь я правильно понимаю, может и не по теме вопрос, но уже замучился искать

        • Андрей Кудлай

          Пожалуйста.
          Относительно запрета ссылок с определенным параметром, попробуйте такой вариант, вполне возможно он сработает. Но я бы все же использовал тэг canonical.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree