Vue项目,要本地搭建测试环境,mklink直接引用编译后的静态文件,不方便直接添加测试php
目录结构
project_dir/
public/
/css
/js
/fonts
/index.html
index.php
.htaccess
可以看出来.htaccess直接置于根目录, 与Slim docs中的结构不一样
RewriteEngine On
RewriteBase /
# 如果文件不存在则继续
RewriteCond %{REQUEST_FILENAME} !-f
# 如果REQUEST_URI 为^/public/(.+)$ 则继续, 与上一条规则并列, 相当于 AND 或者逻辑&&
RewriteCond %{REQUEST_URI} ^/public/(.+)$
# 重定向到index.php 并结束Rewrite规则检查
# 为什么这里不用[QSA,L], Apache的Rewrite在C中直接是一个while或者for, 如果用L只相当于continue
# 还会一直进行检查, 也就是无限循环, Apache为了防止这种情况, 循环达到一定次数直接抛500错误
# 用LogLevel alert rewrite:trace8打开rewrite调试输出可以直接观察到
RewriteRule ^ index.php [QSA,END]
# 不以 /public/开头, 则执行下一条
RewriteCond %{REQUEST_URI} !^/public/
# 重写到/public/*
RewriteRule ^(.*) /public/$1 [QSA,L]
# 为什么重写到public放在最下面? 因为好实现些
转载请注明:神奇海域 » Slim框架将静态文件独立存于子目录并添加Apache重写规则