apache 问号 RewriteRule 问题

apache 问号 RewriteRule 问题

所以我试图重定向

index.php?action=search&query=search text goes here

search?query=search text goes here

我尝试过,但没有成功

RewriteRule ^search/? index.php?action=search&query=$1 [QSA,L]

编辑 :解决方案是

RewriteCond %{QUERY_STRING}  ^query=(.*)$
RewriteRule ^search/? index.php?action=search&query=%1 [QSA,L]

并且由于我的 htaccess 中还有一些其他的 RewriteRule,所以我必须将它们放在它们之上。

我的其他重写规则如下:

RewriteRule ^(\w+)/?$ index.php?action=$1

答案1

尝试这个:

RewriteCond %{QUERY_STRING}  ^query=(.*)$
RewriteRule ^search/? index.php?action=search&query=%1 [QSA,L]

答案2

您需要将其捕获到一个捕获组中。

RewriteRule ^search\?query=(.*)$ index.php?action=search&query=$1 [QSA,L]

相关内容