【问题标题】:how to write rewrite rule in nginx如何在nginx中编写重写规则
【发布时间】:2015-07-08 01:18:47
【问题描述】:

假设我有一个 URL http://www.example.com/category/Travel%20Accessories 现在更改为 http://www.example.com/category/TravelAccessories (%20 已删除)有人可以告诉我如何使用 nginx 将 http://www.example.com/category/Travel%20Accessories 的请求重定向到 http://www.example.com/category/TravelAccessories 。请注意 Travel%20Accessories 是一个示例,还有许多其他此类 url 删除了空格 (%20)

问候 里士

【问题讨论】:

标签: nginx


【解决方案1】:

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

此重写规则应替换以 /category/ 开头的 URL 中的一个空格:

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

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

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

请注意,您需要为每个可能的空格数(在本例中为 1 和 2)设置一个规则。

【讨论】:

  • 感谢 Lukas,它确实做了一些小的改动,即重写 ^(/category/.*)\ (.*)$ $1$2 永久; .我不得不用 \ (\space) 替换 %20 。对于更多空间,无需添加任何额外的东西。我的重写规则处理了所有的空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多