2012-05-26 5 views
0

Я пытаюсь изменить файл htaccess, чтобы он дал хороший URL-адрес для формы поиска.fixing rewrite mod хорошо работает с get

RewriteRule ^search/([a-zA-Z0-9]+)$ look.php?q=$1 [nc] 
RewriteRule ^search/?q=([a-zA-Z0-9]+)$ look.php?q=$1 [nc] 
RewriteRule ^search/?q=([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ look.php?s=$1&q=$2 [nc] 

Если кнопка поиска нажмите URL возвращает /search/?q=tom - ничего не возвращает

если я ввести /search/tom в URL - он возвращает результат, который вышлет Тома

Если кнопка поиска нажмите url возвращает /search/?q=tom+jerry - не возвращает результат, который является неправильным, потому что, если я делаю look.php?s=tom+jerry, он возвращает правильный результат.

Моя цель /search/?q=tom или /search/?q=tom+jerry

ответ

2

Чтобы соответствовать строке запроса, вы должны использовать %{QUERY_STRING} - это не будет соответствовать в RewriteRule.

Таким образом, вы бы заменить второе правило что-то вроде этого:

RewriteCond %{QUERY_STRING} ^q=([a-zA-Z0-9]+)$ 
RewriteRule ^search/ look.php?q=%1 [L,NC] 

И я не понимаю ваше третье правило, так что я не буду пытаться это исправить.

+0

как бы вы это сделали – user570782

+0

Проверить отредактированный ответ - извините, представлен преждевременно. – Ansari

+0

и tom + jerry я бы просто сделал^q (. *) $. thank you – user570782