百度官方的文档介绍到了处理URL rewrite 的两种方法(帮助文档入口): url 配置 url配置的功能类似是URL rewrite功能,将符合匹配规则的url重写到指定的脚本处理。 Rewrite规则可配置多条,顺序是从上往下依次匹配,遇到第一个匹配成功的即结束配置过程;另外,并不需要请求的uri完全匹配指定的正则,只要其中有部分内容匹配即可。 示例:

规则类型:url 规则:/profile/(.?)/(.) 执行:/employee/$2/$1.php

说明: 对于上面的规则,请求“/profile/a/b”会被重写到由“/employee/b/a.php”来处理。 regex-url 配置(Beta) regex-url规则的功能与url规则相同,区别是regex-url规则为标准正则。 (推荐使用regex-url规则) 示例1:

\- regex_url: ^/\[a-z0-9\]\\.html$
          script: /index.php

示例2:

\- regex\_url: ^/secure\_page$
          status_code: 403

示例3:

\- regex\_url: ^/secure\_page$
          status_code: 302
          location: http://example.com/error.html

说明: status_code:指定返回的状态码;支持的返回码为301、302、403和404。 location:指定跳转地址(在status_code为301、302时使用) 提示: url规则使用的lua正则由于使用比较晦涩,以后不推荐使用。本次新增的status_code和location也不再支持url规则。原有url规则功能不受影响。 注意:

regex_url和url规则在同一个app.conf不推荐混合使用;会有匹配顺序问题。 regex-url规则目前在管理控制台还未提供在线配置,请通过线下方式进行配置。

遇到的问题: 参照百度官方的帮助文档,在使用regex-url 时无法成功发布,提示”发布失败“!即使是完全复制上面的内容也发布通过发布- -。 唯有使用php 重定向至新url:

不知道时什么原因,平台是ubuntu,使用的编辑软件有gedit 及vi ,估计不会是编辑器的问题,毕竟也仅仅是在使用regex-url 时才会出错。

Comments