如何在nginx中编写重写规则

how to write rewrite rule in nginx

假设我有一个 URL http://www.example.com/category/Travel%20Accessories which is now changed to http://www.example.com/category/TravelAccessories (%20 is removed) can some one tell how using nginx I can redirect request for http://www.example.com/category/Travel%20Accessories to http://www.example.com/category/TravelAccessories 。请注意 Travel%20Accessories 是一个例子,还有许多其他这样的 url,其中删除了 space(%20)

问候 贤者

您不能删除任意数量的 space。问题是,对于重写,您必须指定一个正则表达式来匹配整个 URL 和一个替换表达式来匹配整个 URL.

此重写规则应替换 URL 中以 /category/:

开头的一个 space
rewrite ^(/category/.*)\ (.*)$  permanent;

您可以像这样添加更多要捕获的 space:

rewrite ^(/category/.*)\ (.*)\ (.*)$  permanent;
rewrite ^(/category/.*)\ (.*)$  permanent;

请注意,每个可能的 space 数量(在本例中为 1 和 2)都需要一个规则。