这些.htaccess指令是什么含义?配置后网站打开空白如何解决?
.htaccess配置解读与问题排查
逐行规则含义
这套规则是PHP单入口应用的典型重写逻辑,核心是将所有非静态资源、非直接PHP文件的请求统一交给index.php处理,常见于WordPress、Laravel等程序的默认配置,各代码行的具体作用如下:
RewriteEngine On:开启Apache的重写引擎,是所有重写规则生效的前提RewriteBase /:设置重写的基础路径为站点根目录,所有规则的路径匹配都基于根目录计算RewriteRule ^index\.php$ - [L]:如果当前请求匹配index.php,不做任何重写(-代表不跳转),[L]标记代表本条规则执行后终止后续所有重写逻辑RewriteCond %{REQUEST_FILENAME} -f [OR]:判断请求的路径对应服务器上真实存在的文件(-f是file的缩写),[OR]代表和下一条条件是或的关系RewriteCond %{REQUEST_FILENAME} -d:判断请求的路径对应服务器上真实存在的目录(-d是directory的缩写)RewriteRule ^ - [L]:只要满足上面两个条件的任意一个,就不做重写,直接返回对应资源,终止后续规则RewriteRule ^(.*\.php)$ $1 [L]:所有后缀为.php的请求,直接访问对应PHP文件,不做重写,终止后续规则RewriteRule . index.php [L]:所有不满足上述所有规则的请求,全部重写到根目录的index.php处理,终止重写
空白页常见故障点
该重写规则语法本身没有错误,访问空白通常由以下配置问题导致:
- Apache未开启
mod_rewrite模块,重写规则完全不生效 - 站点根目录无
index.php文件,或文件存在PHP语法错误、权限不足,执行后无输出 - Apache虚拟主机配置中
AllowOverride参数设置为None,导致.htaccess文件被忽略不生效 .htaccess文件本身权限不足,Apache进程无法读取该文件内容- 单入口程序的路由配置错误,根路径请求无对应处理逻辑,返回空白
内容的提问来源于stack exchange,提问作者Carlo
相关产品推荐
相关产品推荐

