Помогите написать одно условие для редиректа

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем vesta-v, 11 июл 2012.

Статус темы:
Закрыта.
  1. vesta-v

    vesta-v

    Регистр.:
    25 окт 2007
    Сообщения:
    311
    Симпатии:
    14
    Доброй ночи, никак не могу сделать один редирект. Вобщем сайт на dle, там получается такая штука, например: site.ru/2010/11/02/page/4/, является дублем site.ru/page/4/, как написать условие, чтобы если встречались даты или какие-нибудь цифры перед /page/ происходил редирект на главную. Вот например редирект на морду с /page/1/:

    Код:
    RewriteRule ^(.*)page/1/?$ /$1 [L,R=301]
    , что там спереди ( и внутри вместо 1 ) нужно дописать чтобы если перед пейджами появлялись цифры, происходил редирект на главную?
     
  2. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.377
    А переключить тип ЧПУ в админке не вариант?
     
  3. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.039
    попробуй так
    Код:
    RewriteRule ^(.*)page/\d*/?$ /$1 [L,R=301]
     
  4. vesta-v

    vesta-v

    Регистр.:
    25 окт 2007
    Сообщения:
    311
    Симпатии:
    14
    Да нет, итак после этих гугловских фильтров позиции просели, а так боюсь вообще все улетит, поэтому не хочу рисковать. Или я не права?

    Код:
    RewriteRule ^(.*)page/\d*/?$ /$1 [L,R=301]
    , так не работает, из старницы site.ru/2010/11/02/page/2/, обрезает page/2/ оставляя при этом (редиректит на) site.ru/2010/11/02/, а нужно наоборот. Также при переходе по категориям site.ru/category/page/2,3 и т.д/, редиректит на site.ru/category/, а нужно чтобы редирект срабатывал только если вначале идет архив, т.е простые цифры.
     
  5. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.039
    редерект на главную будет так
    Код:
    RewriteRule ^(.*)page/\d*/?$ http://site.ru/ [L,R=301]
    а вообще внятный прямой пример приведи какой url надо на какой перебросить

    а то в тексте написано цифра ПЕРЕД page
    а в регулярке указываешь ПОСЛЕ

    я приведённую регулярку подправил так чтобы реагировала на все цифры
    если она изначально была идейно неправильная я тут не при чём
     
  6. vesta-v

    vesta-v

    Регистр.:
    25 окт 2007
    Сообщения:
    311
    Симпатии:
    14
    оно то все так, но, Вы видимо меня просто неправильно поняли, с тем кодом который вы мне дали происходит редирект со всех site.ru/page/2,3,4/ и т.д/, а нужно чтобы это происхдило только в том случае если перед ( пример: site.ru/2012/11/01/page/2,3,4/) Т.е сделать условие: если перед страницой ../page/x/.. имеется цифра, делаем редирект на морду сайта. ( RewriteRule ^(.*)page/\d*/?$ Перейти по ссылке [L,R=301] ). Там где выделено красным нужно добавить условие ?.. Возможно туда нужно вставить нечто похожее на такую конструкцию {1,9}, но я при эксперемнтах постоянно натыкаюсь на различные глюки, поэтому прошу помощи у вас. Очень буду благодрна за помощь, заранее спасибо.
     
  7. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.039
    пробуйте так
    Код:
    RewriteRule ^(.*)/\d*/page http://site.ru/ [L,R=301]
    должно работать, как надо...
     
    vesta-v нравится это.
Статус темы:
Закрыта.