0

I'm trying to modify a htaccess file so that it will give a nice url for a search form.

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]

If the search button is click the url returns /search/?q=tom -- returns nothing

if i enter /search/tom in the url -- it returns result that matchs tom

If the search button is click the url returns /search/?q=tom+jerry -- return no result which is wrong because if i do look.php?s=tom+jerry it returns the correct result..

my aim is this /search/?q=tom or /search/?q=tom+jerry

4

1 に答える 1

2

を使用%{QUERY_STRING}してクエリ文字列を照合する必要があります。RewriteRuleでは照合されません。

したがって、2番目のルールを次のようなものに置き換えます。

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

そして、私はあなたの3番目のルールを理解していないので、それを修正しようとはしません。

于 2012-05-26T23:50:09.143 に答える