.htaccess重定向至空白页而非index.php问题排查
解决URL重定向到index.php显示空白页的问题
一、修正.htaccess规则
现有规则缺少必要的处理标志,且未传递请求路径参数,导致index.php无法正确处理跳转后的请求。修改为以下配置:
RewriteEngine on # 排除已存在的文件和目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将所有不存在的请求转发到index.php,并传递原始路径参数 RewriteRule ^(.*)$ /index.php?url=$1 [L,QSA]
[L]:标记为最后一条规则,停止后续规则处理[QSA]:保留原始请求的查询字符串,比如访问localhost/abc?foo=bar时,参数会同步传递给index.php
如果项目部署在Apache子目录(比如localhost/myproject/),需将绝对路径改为相对路径:
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
二、排查PHP执行错误
空白页通常是index.php执行出错但未显示错误信息导致的,在index.php最顶部添加以下代码开启错误显示:
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
刷新页面后即可看到具体错误,比如是否未处理$_GET['url']参数、文件路径引用错误等。
三、确认mod_rewrite模块启用
检查httpd.conf文件,确保LoadModule rewrite_module modules/mod_rewrite.so这一行没有被注释(去掉行首的#),修改后重启Apache服务。
内容的提问来源于stack exchange,提问作者user27490413
相关产品推荐
相关产品推荐

