- ACE使用的是Nginx配置语法, 假设一个规则为:
rewrite \^(.+)$ /index.php?q=$1 last;
那么转化为ACE的配置则为: (复制代码后注意格式对齐, 否则会启动失败)
rewrite: - url: \^(.+)$ script: /index.php?q=$1 last # 注意没有 ";"
- 排除一些路径和文件类型的写法 (复制代码后注意格式对齐, 否则会启动失败) 非index.php开头的网址,排除三种情况后转到index.php index.php 开头的网址 css/,img/,js/,lib/,sjxq/ 目录开始的网址 xxxx.php 形式的网址,以支持根目录下的php文件访问 xxx.html 形式的网址,以支持根目录下的html文件访问
rewrite: - url: \^(\/(?\!(index\.php\|(?:css\|js\|img\|lib\|flash\|help\|html\|font)\/\|[\^\/|]*?\..*)).*)$ script: /index.php?/$1
- 常用的 apache 的转发规则,如:
RewriteCond %{REQUEST_FILENAME} \!-f RewriteCond %{REQUEST_FILENAME} \!-d RewriteRule \^(.*)$ index.php [L,QSA]
改写为 ACE 时可以直接用 tryuri: (复制代码后注意格式对齐, 否则会启动失败)
tryuri: - path: / script: /index.php
- 外部跳转 (复制代码后注意格式对齐, 否则会启动失败)
rewrite: - url: \^/1.gif$ script: [http://xxx.com] perment
- ThinkPHP 常用规则, 实现 /index.php/aa/bb 优化成 /aa/bb , 记得要重启(不仅是重新发布)应用 (复制代码后注意格式对齐以及去掉多余空格, 否则会启动失败)
rewrite: - url: \^(/(?\!(\.)).*)$ script: /index.php/$1 last
这个规则只是抛砖引玉, 完全和 nginx 一致
发表回复