如何在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)都需要一个规则。
假设我有一个 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/:
开头的一个 spacerewrite ^(/category/.*)\ (.*)$ permanent;
您可以像这样添加更多要捕获的 space:
rewrite ^(/category/.*)\ (.*)\ (.*)$ permanent;
rewrite ^(/category/.*)\ (.*)$ permanent;
请注意,每个可能的 space 数量(在本例中为 1 和 2)都需要一个规则。