За последние 24 часа нас посетили 16860 программистов и 1284 робота. Сейчас ищут 1449 программистов ...

http://site.com/search/ЗАПРОС+ПОИСКА/СТРАНИЦЫ_1

Тема в разделе "Регулярные выражения", создана пользователем gkhelloworld, 5 июн 2008.

  1. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    подскажите с mod_rewrite

    у меня для поиска вот такая ссылка

    Код (Text):
    1. http://site.com/search/ЗАПРОС+ПОИСКА/СТРАНИЦЫ_1
    Код (Text):
    1. RewriteRule ^search/([A-Za-z0-9-_\.\+()\s]+)/([0-9]+)?$ default.php?tmplt=search&s=$1&page=$2 [L]
    при запросе GET получается

    Код (Text):
    1. http://site.com/search/?s=ЗАПРОС+ПОИСКА/СТРАНИЦЫ_1
    тем самым запрос не выводится из-за не правильно виденного URLa.
    подскажите как в mod_rewrite добавить "?s=" или шо там хз... =)
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Ключ QSA. [L,SQL] разрешит обрабатывать и ?такие=запросы. Во-первых, это.
    Во-вторых, а на чё ты расчитывал, Буратино (в том смысле, что деревянный)?

    Предположим, это твоя форма:
    HTML:
    1. <form method="get">
    2. <input name="search" type="text" />
    3. <input type="submit" value="искать" />
    4. </form>
    Есть кнопка, есть текстовое поле с именем search (это важно для манипуляций, знать имя важно). Делаем так:
    HTML:
    1. <form method="get" onsubmit="window.location = '/search/' + this.search.value; return false;">
    2. <input name="search" type="text" />
    3. <input type="submit" value="искать" />
    4. </form>
    Суть: при нажатии на "искать" форма сама берёт слово и перенаправляет на УРЛ (пример: http://сайт.ру/search/слово). Шикарно.

    В строке
    HTML:
    1. onsubmit="window.location = '/search/' + this.search.value; return false;
    Замени this.search.value на this.ИМЯ_ПОЛЯ.value, где ИМЯ_ПОЛЯ это твоё поле в которое вводится текст поиска. Судя из УРЛа в твоём вопросе
    Код (Text):
    1. http://site.com/search/?s=ЗАПРОС+ПОИСКА/СТРАНИЦЫ_1
    Это поле называется s.

    Но не факт, конечно. Ведь твой сайт не называется site.com. Так же и имя поля может называться иначе.
     
  3. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
    хотел еще спросить..как поменять

    Код (Text):
    1. http://localhost/search/ЗАПРОС%20АДИН
    т.е. вместо %20 чтобы + шел.!
    типа так надо

    Код (Text):
    1. http://localhost/search/ЗАПРОС+АДИН
     
  4. gkhelloworld

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

    С нами с:
    18 ноя 2007
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    PHP.ru
  5. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Замени
    Код (Text):
    1. this.search.value
    на что-то вроде
    Код (Text):
    1. this.search.value.replace(' ', '+')
    Поищи в интернете функцию замены в javasrcipt`е.

    И не апь. Раздражает. Я тя запомнил. В следующий раз за "ап" я на твою тему даже не посмотрю. Я суровый.