我无法让我的重写规则正常工作

时间:2012-09-08 12:53:30

标签: .htaccess mod-rewrite

我正在努力做到这一点:

www.amazingjokes.com/cache/search.php?term=programming

转到这个:

wwww.amazingjokes.com/popular/programming

但我无法让它正常工作。我试过像

这样的东西
RewriteRule ^cache/search.php?term=(.*)$ /popular/$1 [R=301,L]

但无济于事。

1 个答案:

答案 0 :(得分:2)

RewriteRule不接收查询字符串,它实际接收的只是文件的路径。因此,当您前往/cache/search.php?term=programming时,实际收到的内容仅为/cache/search.php

但是,您可以在%{QUERY_STRING}变量上使用RewriteCond:

RewriteCond %{QUERY_STRING}     ^term=(.*)$     [NC]
RewriteRule ^/cache/search.php$ /search/%1      [NC,L,R=301]