dongyun65343 2012-05-26 23:45
浏览 6
已采纳

修复重写mod以便与get一起使用

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

  • 写回答

1条回答 默认 最新

  • dops57958 2012-05-26 23:50
    关注

    You have to use %{QUERY_STRING} to match the query string - it won't be matched in the RewriteRule.

    So you would replace your second rule by something like this:

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

    And I don't understand your third rule so I'm not going to try to fix it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?