ЧПУ и GET

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем rasandrey, 12 май 2011.

  1. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Вопрос в следующем:

    есть форма
    Код:
    <form action="site.ru" method="get">
    <input type="text"  name="searchstring"  /></div>
    <input type="submit"  value="Найти" />
    </form>
    По нажатию на кнопку получаем адрес

    Код:
    site.ruindex.php?searchstring=что-то
    Как с помощью htaccess привести адрес к виду
    Код:
    site.ru/searchstring/что-то
    ?
     
  2. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    Код:
    RewriteRule ^searchstring/([^/]+)/?$	index.php?module=Search&searchstring=$1 [L]
    RewriteRule ^searchstring/?$	index.php?module=Search [L]
    
    
     
  3. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    откуда взялось
    Код:
    index.php?module=

    Составил такое правило в htaccess
    Код:
    RewriteRule ^/?searchstring/(.*) /index.php?searchstring=$1 [L,QSA]
    форму сделал так:
    Код:
    <form action="site.ru/searchstring/" method="get">
    <input type="text"  name="searchstring"  /></div>
    <input type="submit"  value="Найти" />
    </form>
    Теперь адрес получается в виде
    Код:
    http://site.ru/searchstring/?searchstring=Что-то
    По адресу
    Код:
    http://site.ru/searchstring/Что-то
    выводится то же самое. Теперь не могу понять - как перенаправлять с первого адреса на второй, как расспарсить строку? И правильно ли я делаю?
     
  4. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    PHP:
    RewriteEngine On
    RewriteRule 
    ^searchstring/([^/]*)/$ index.php?searchstring=$[L]
    а в форме зачем вообще тебе searchstring просто index.php
    PHP:
    <form action="index.php" method="get">
    <
    input type="text"  name="searchstring"  />
    <
    input type="submit"  value="Найти" />
    </
    form>
     
  5. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Да, ок. Но теперь вопрос как перенапрвить на вид
    Код:
    site.ru/searchstring/что-то 
    ?

    По нажатию на кнопку в форме, получаем строку
    Код:
    site.ru/index.php?searchstring=что-то
     
  6. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.035
    Симпатии:
    703
    я конечно понял о чем речь а зачем что-то перенаправлять с формы ссылки с формы видит только пользователи эту строку поисковик не увидит главное чтобы остальные ссылки фармировались корректно site.ru/searchstring/что-то я имею ввиду на сайте а чтобы из формы так ХЗ помоему никак может конечно ошибаюсь
     
  7. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Сделал перенаправление таким образом

    Код:
    	if(strpos($_SERVER['REQUEST_URI'], 'searchstring')) {
    		header('location: '.CONF_SHOP_URL.'searchstring/'.$_GET['searchstring']) ;
    	}
    Может кому пригодиться