mod_rewrite 规则匹配首字母

mod_rewrite 规则匹配首字母

我有如下结构的 URLhttp://domain.com/search.php?query=perks
我希望能够匹配查询“在这种情况下是特权”的首字母,并创建一个像这样的 url
http://domain.com/p/perks
我还希望,如果查询以数字开头,例如查询“1 perk”,它将生成如下 URL。domain.com/1/1+perk
有谁
知道如何实现搜索第一个字符的匹配,以使 URL 结构化为这样?谢谢

答案1

作为mod_rewrite 文档解释道,

如果您希望匹配主机名、端口或查询字符串,请分别使用RewriteCond带有%{HTTP_HOST}%{SERVER_PORT}%{QUERY_STRING}变量的。

因此,解决方案是:

RewriteCond %{QUERY_STRING} (^|&)query=(([^&])[^&]*)
RewriteRule ^/search.php /%3/%2?

顺便说一句,+只有当 位于查询字符串中时,它才会解码为空格字符。URL 路径部分中的空格应编码为%20+URL 路径部分中的 a 通常应按字面意思解释。

相关内容