1) ACE 使用的是 Nginx 配置语法, 假设一个规则为:
`
rewrite ^(.+)$ /index.php?q=$1 last;
`
那么转化为 ACE 的配置则为: (复制代码后注意格式对齐, 否则会启动失败)
`
rewrite:
- url: ^(.+)$
script: /index.php?q=$1 last # 注意没有 ";"
`
2) 排除一些路径和文件类型的写法 (复制代码后注意格式对齐, 否则会启动失败)
`
感谢 picer 网友提供
# 非index.php开头的网址,排除三种情况后转到index.php
# 1.index.php 开头的网址
# 2.css/,img/,js/,lib/,sjxq/ 目录开始的网址
# 3.xxxx.php 形式的网址,以支持根目录下的php文件访问
# 3.xxx.html 形式的网址,以支持根目录下的html文件访问
rewrite:
- url: ^(\/(?!(index\.php|(?:css|js|img|lib|flash|help|html|font)\/|[^\/]*?\..*)).*)$
script: /index.php?/$1
`
3) 常用的 apache 的转发规则,如:
`
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
`
改写为 ACE 时可以直接用 tryuri: (复制代码后注意格式对齐, 否则会启动失败)
`
tryuri:
- path: /
script: /index.php
`
4) 外部跳转 (复制代码后注意格式对齐, 否则会启动失败)
`
rewrite:
- url: ^/1.gif$
script: http://xxx.com perment
`
5) ThinkPHP 常用规则, 实现 /index.php/aa/bb 优化成 /aa/bb , 记得要重启(不仅是重新发布)应用
(复制代码后注意格式对齐以及去掉多余空格, 否则会启动失败)
`
rewrite:
- url: ^(/(?!(\.|Public|Uploads)).*)$
script: /index.php/$1 last
`
这个规则只是抛砖引玉, 完全和 nginx 一致
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。