我有这种格式的网址
www.example.com/?city_name="New-York"
我想知道是否有办法自动将此 url 重写为
www.example.com/cities/new-york
使用重写规则。
对
查询字符串使用RewriteCond
,然后使用结果使用RewriteRule
。
RewriteCond %{QUERY_STRING} ^city_name="([w]+)" [NC]
RewriteRule (.*) /cities/%1? [L,R]
RewriteCond
对查询字符串运行正则表达式,查找city_name
参数。 NC
是 no case 标志,以使正则表达式不区分大小写。在实际的RewriteRule
指令中,我们完全重写了 /cities/%1
的路径,其中 %1
是最后一个成功的 RewriteCond
指令中的第一个匹配组,在本例中为请求的城市的 slug。我们在末尾放置一个?
以从请求中擦除查询字符串,然后传递L
和R
标志以发出完整的 302 重定向。