Редирект страниц с ?

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Css_Ufa, 7 июн 2011.

  1. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    543
    Симпатии:
    323
    Хочу узнать как сделать правильный редирект:
    Код:
    1. site.ru/?jklasd --> site.ru
    2. site.ru/page?jklasd --> site.ru/page
    Спасибо :)
     
    das108 нравится это.
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^jklasd$
    RewriteRule (.*) /$1? [R=301,L]
    
     
    Css_Ufa нравится это.
  3. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    543
    Симпатии:
    323
    А редирект:
    Код:
    site.ru/page?jklasd --> site.ru/page
    Еще раз спасибо! :)
     
  4. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Стоп.....оно что не работает? Должно для всех страниц, работать, там только проверка по строке запроса.
     
  5. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    543
    Симпатии:
    323
    Тогда скажу как мне нужно:
    Код:
    1. site.ru/?start=3 --> site.ru, site.ru/?start=6 --> site.ru
    Вот это решает как я понял:
    Код:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^jklasd$
    RewriteRule (.*) /$1? [R=301,L]
    Осталось вот это решить:
    Код:
    2. site.ru/cat/podcat/podcatcat?ml=1 --> site.ru/cat/podcat/podcatcat
    А можно сделать как-то все вручную или нет?

    Или я не прав?
     
  6. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    1-й вариант: редиректить через строки запроса для всех адресов:
    Код:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^start=(?:3|6)$ [OR]
    RewriteCond %{QUERY_STRING} ^ml=1$
    RewriteRule (.*) /$1? [R=301,L]
    
    В таком случае, при site.ru/?m1=1 тоже кинет на главную.

    2-й вариант: только с определённых адресов:
    Код:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^start=(?:3|6)$
    #редирект для главной
    RewriteRule ^/$ /? [R=301,L]
    RewriteCond %{QUERY_STRING} ^ml=1$
    RewriteRule ^/cat/podcat/podcatcat$ /cat/podcat/podcatcat? [R=301,L]
    
     
  7. Css_Ufa

    Css_Ufa

    Регистр.:
    25 ноя 2008
    Сообщения:
    543
    Симпатии:
    323
    Ошибку 500 вообще пишет.

    А если сделать вот так:
    Код:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^ml=1$
    RewriteRule ^/cat/podcat/podcatcat$ /cat/podcat/podcatcat? [R=301,L]
    
    Редирект не работает :(
     
  8. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^start=(?:3|6)$
    RewriteRule ^/?$ /? [R=301,L]
    RewriteCond %{QUERY_STRING} ^ml=1$
    RewriteRule ^/?cat/podcat/podcatcat$ /cat/podcat/podcatcat? [R=301,L]
    
    Видно в кеше висело, теперь должно работать.
     
    Css_Ufa нравится это.