搜索查询页面的 .htaccess RewriteRule

.htaccess RewriteRule for search query page

我想为我的搜索页面写一个重写规则,它必须满足以下条件:

显示URL:

/search?q=SEARCH-QUERY

实际URL:

/search.php?q=SEARCH-QUERY

我尝试了以下但没有用:

RewriteRule ^search?q=(.*)$ search.php?q=%1 [QSA]

我已经检查了很多相关问题,但找不到答案。

根据您显示的示例,您能否尝试以下操作。请在测试您的 URL 之前清除您的浏览器缓存。您正在检查 rewriterule 中的查询字符串,这将不起作用,因为查询字符串可以在变量 QUERY_STRING 的条件或变量 THE_REQUEST 中匹配,所以我在这里使用后面的选项。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(search)\?q=SEARCH-QUERY\s [NC]
RewriteRule ^ %1.php [L,QSA]