Подстановка url по правилам htaccess

Тема в разделе "Как сделать...", создана пользователем Андрюха, 23 фев 2012.

  1. Андрюха

    Андрюха Создатель

    Регистр.:
    20 окт 2007
    Сообщения:
    40
    Симпатии:
    0
    Итак, предыстория вопроса:
    На сайте есть адрес вида (генерируется cms) site/plugin.php?id=name_plugin
    C помощью правил htaccess сделал переход на вышеуказанную ссылку по url вида site/name_pluhin.html
    Теперь к сути вопроса:
    Поисковики индексируют оба варианта ссылки, получается дублирование ссылок, что есть нехорошо. Необходимо, чтобы CMS генерировала на сайте ссылку второго варианта.
    Возможно ли организовать такую задачу средствами htaccess без хаков ядра cms? Если да, то как?
    Какие еще возможные варианты решения данной проблемы?
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.184
    1) сделать правило htaccess, которое не пропустит url вида site/plugin.php?id=name_plugin заменяя его 301 редиректом на site/name_pluhin.html - вряд ли это будет сео хорошо
    2) через htaccess все запросы направить к proxy.php, который запросит страницу у cms и произведет замену необходимых данных, например регулярками - муторно и производительность пострадает
    3) ... другие способы подмены контента на лету ...
     
  3. scott2to

    scott2to Создатель

    Регистр.:
    20 фев 2012
    Сообщения:
    31
    Симпатии:
    7
  4. Андрюха

    Андрюха Создатель

    Регистр.:
    20 окт 2007
    Сообщения:
    40
    Симпатии:
    0
    что мод_реврайт? Подключен, если это имелось ввиду
     
  5. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    походу scott2to просто решил счетчик сообщений себе увеличить, базыв при этом что в данном разделе он не увеличивается
    --
    средствами htaccess нельзя повлиять на структуру URL которая будет сформирована CMS-кодй и записана в html -код
    нужно либо искать SEO-модули для соответствующей CMS и их должным образом настраивать
    или же делать хаки в CMS
     
  6. Андрюха

    Андрюха Создатель

    Регистр.:
    20 окт 2007
    Сообщения:
    40
    Симпатии:
    0
    Понял.. А как-то вручную можно убрать дубликаты ссылок для поисковиков?
     
  7. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    Андрюха
    в данном случае дубликат ссылок вы сами ввели добавив правило в htaccess правила для url вида site/name_pluhin.html
    => чтоб "вручную" убрать дубликаты достаточно убрать эти "новые" правила

    ну а в целом дубликаты убираются через тот же htaccess или же вообще запрещая роботам индексирвоать определенные урлы через robots.txt


    я просто не вижу смысла в существовании URL вида site/name_pluhin.html при условии что нельзя "заменить" старые
    где эти "красивые" URL вообще будут фигурировать? на каких-то досках объявлений / форумах или че?
    на сайте вить всеравно будут старые некрасивые адреса
     
  8. scott2to

    scott2to Создатель

    Регистр.:
    20 фев 2012
    Сообщения:
    31
    Симпатии:
    7
    не внимательно прочитал тему.

    Подумав. Через htaccess вроде бы только 301 редиректом такое можно сделать. Поисковики плохо реагируют на большое количество перенаправлений?
     
  9. DemanZ

    DemanZ Постоялец

    Регистр.:
    16 мар 2007
    Сообщения:
    144
    Симпатии:
    113
    Ну почему же редирект? можно и так: (главное у себя ссылки исправить на сайте вида site/name_pluhin.html)
    Код:
    RewriteEngine On
    RewriteRule ^site/name_pluhin.html$ site/plugin.php?id=name_plugin [L]
     
  10. scott2to

    scott2to Создатель

    Регистр.:
    20 фев 2012
    Сообщения:
    31
    Симпатии:
    7
    Не подходит. Человеку надо что бы существующие уже ссылки волшебным образом заменились на нужные, без вмешательства в саму CMS. 301 редирект предполагает, что через некоторое время поисковик будет первый адрес считать вторым и менять ссылки по всему сайту нет нужды. на лету менять get-запрос htaccess может, а вот контент вроде как нет. или есть модуль?