将 www.example.com/?city_name= "New-York"重写为 /cities/new york 的最有效方法是什么



我有这种格式的网址

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。我们在末尾放置一个?以从请求中擦除查询字符串,然后传递LR标志以发出完整的 302 重定向。

相关内容

最新更新