За последние 24 часа нас посетили 18105 программистов и 1590 роботов. Сейчас ищут 1218 программистов ...

mod_rewrite и условие

Тема в разделе "Регулярные выражения", создана пользователем XDmitry, 25 фев 2013.

  1. XDmitry

    XDmitry Активный пользователь

    С нами с:
    22 авг 2010
    Сообщения:
    18
    Симпатии:
    0
    Приветствую всех! Не получается решить задачу средствами mod_rewrite. Необходимо выдавать 404 ошибку на адреса в URL типа:

    http://example.com/node
    http://example.com/node/
    http://example.com/node/nid
    http://example.com/node/nid/
    http://example.com/node/nid/trulala

    где:

    nid - это любое (любые) целое число
    trulala - это любые символы.
    По условию, адреса типа:

    http://example.com/node/nid/edit
    http://example.com/node/nid/revision

    должны получать 200 ОК.
    Я прописываю правило:
    Код (Text):
    1. RewriteRule ^node/[0-9]{1,}/?[.*]? - [R=404,L]
    2. RewriteRule ^node$|^node/$ - [R=404,L]
    Не получается составить условие в RewriteCond. Как здесь можно решить задачку?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не понял, чем плохие отличаются от хороших
     
  3. XDmitry

    XDmitry Активный пользователь

    С нами с:
    22 авг 2010
    Сообщения:
    18
    Симпатии:
    0
    А я вас не понял :)
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а я непонял вас обоих
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    RewriteRule ^node/.* - [R=404,L]
     
  6. XDmitry

    XDmitry Активный пользователь

    С нами с:
    22 авг 2010
    Сообщения:
    18
    Симпатии:
    0
    Допустим. А как исключить из этого правила адреса:
    example.com/node/nid/edit
    example.com/node/nid/revision

    ?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А, всё. Я просто видимо хреново прочел пост. =)
    я плохо знаю регулярки. что-то типа ^
    RewriteRule ^node/(?:(?!edit|revision).)* - [R=404,L]

    =) хз
     
  8. XDmitry

    XDmitry Активный пользователь

    С нами с:
    22 авг 2010
    Сообщения:
    18
    Симпатии:
    0
    К сожалению :(
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768