Изменить вид ссылки

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем SocMaster, 24 янв 2014.

  1. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Ребят есть вот такой урл /f-audi-80/tehnicheskaja-literatura-1711-1.html?filter=typeid&typeid=142 (естественно все динамическое)
    Можно как то спрятать вот это фиговину ?filter=typeid&typeid=142 ?
     
  2. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    а так откроется страница /f-audi-80/tehnicheskaja-literatura-1711-1.html ?
    Если да, то сделай так (это зарежет всё после знака вопроса, если там присутствует пара чтоугодно=чтоугодно )
    Код:
    RewriteCond %{QUERY_STRING} (.*)=(.*) [NC]
    RewriteRule (.*) http://your-site.com.ua/$1? [R=301,L]
    
    Если страница без параметров не открывается, то параметры нужно прятать в адрес (делать ссылку вида /f-audi-80/tehnicheskaja-literatura-1711-1/typeid/142.html), что, в принципе, тоже не сложно...
     
  3. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Подскажите как спрятать в адрес
     
  4. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    Если мне не изменяет память - потесть такое:
    Код:
    RewriteCond %{QUERY_STRING} filter=[a-zA-z]+&typeid=[0-9]+
    RewriteRule (.*)\.html http://your-site.com.ua/$1/%1/%2? [R=301,L]
    RewriteCond %{REQUEST_URI} .*/.*/[a-zA-z]+/[0-9]+
    RewriteRule (.*)/(.*)/([a-zA-z]+)/([0-9]+) http://your-site.com.ua/$1/$2?filter=$3&typeid=$4 [QSA,L]
    
    Работать будет только если ссылки второго уровня и более (второй уровень должен работать корректно, выше второго уровня может работать некорректно. Для корректной настройки нужно видеть сайт в личке, либо знать какого вида могут быть ссылки на всём сайте).
     
  5. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Активно используем поддомены(
     
  6. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    с поддоменами проблем не будет, могут быть проблемы с уровнями вложенности ссылок более двух... Я же не знаю какие там ссылки на сайте бывают, можно ведь и поточнее правило написать...

    Кстати я там в коде немного натупил и работать как надо не будет, вот исправленная версия:
    Код:
    RewriteCond %{QUERY_STRING} filter=([a-zA-Z0-9-_]+)&typeid=([0-9-_]+)
    RewriteRule (.*).html http://your-site.com.ua/$1/%1/%2.html? [R=301,L]
    RewriteCond %{REQUEST_URI} .*/.*/[a-zA-Z0-9-_]+/[0-9-_]+.html
    RewriteRule (.*)/(.*)/([a-zA-Z0-9-_]+)/([0-9-_]+).html http://your-site.com.ua/$1/$2.html?filter=$3&typeid=$4 [QSA,L]
    
    Так должно работать... А если нужно более норм правила с минимумом багов - покаж сайт в личку... И содержание .htaccess
     
    Последнее редактирование: 24 янв 2014
  7. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    На этой странице обнаружена циклическая переадресация

    А как будет работать на поддоменах если вот явно указано
    http://your-site.com.ua/$1/$2.html?filter=$3&typeid=$4 [QSA,L]
    без поддомена?
    Дальше ссылки что есть нет ничего, это просто вызвать сортировку на странице и все.
    Только все страницы на поддоменах, например audi.site.com
     
  8. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    убери
    Код:
    http://your-site.com.ua

    оставь /$1/$2.html?filter=$3&typeid=$4 . Просто разные сервера по разному работают. Некоторые норм, некоторым нужно указывать домен явно...

    Вначале файла после RewriteEngine on стоит RewriteBase / ?
    Что-то я не нахожу у себя циклической переадрессации... Другие правила в htaccess присутствуют? Может моё конфликтует...
    Попробуй
    Код:
    RewriteCond %{QUERY_STRING} filter=([a-z]+)&typeid=([0-9]+)
    RewriteRule (.*).html /$1/%1/%2.html? [R=301,L]
    RewriteCond %{REQUEST_URI} .*/.*/[a-z]+/[0-9]+.html
    RewriteRule (.*)/(.*)/([a-z]+)/([0-9]+).html /$1/$2.html?filter=$3&typeid=$4 [QSA,L]
     
    Последнее редактирование: 24 янв 2014
  9. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Стоит..
    Все равно ошибка...на новую страницу кидает, а дальше ошибка, удалял все правила кроме этих, все равно ошибка
     
  10. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    Новая страница выглядит так: /f-audi-80/tehnicheskaja-literatura-1711-1/typeid/142.html ?