最新消息:

Slim框架将静态文件独立存于子目录并添加Apache重写规则

Apache ZmmFly 243浏览 0评论

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重写规则

发表我的评论
取消评论

Protected by WP Anti Spam
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址