非WordPress网站移入public_html子目录后无法访问,需同时访问新旧站点
嘿,我来帮你一步步排查这个问题!非WordPress站点移到子目录后出现空白页,通常和权限、路径配置或者PHP报错有关,咱们挨个来试:
检查文件与目录权限
服务器运行PHP的用户(比如www-data)需要有读取子目录文件的权限。你可以通过SSH登录服务器,执行ls -l public_html/ow查看权限。一般来说,文件权限设为644、目录权限设为755是比较安全且有效的配置。如果权限不对,用chmod命令调整,比如chmod -R 755 public_html/ow(注意递归修改要谨慎,确认目录里没有敏感文件)。强制显示PHP错误
空白页很多时候是因为PHP报错但被默认屏蔽了。你可以在ow/index.php的最开头添加以下代码,强制显示所有错误:ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);刷新页面后应该能看到具体的错误信息,比如找不到某个依赖文件、数据库连接失败或者路径错误,这能帮你快速定位问题。
排查站点内部的硬编码路径
旧站在根目录时,可能有很多硬编码的绝对路径(比如/includes/config.php、/css/main.css)。移到ow子目录后,这些路径会指向根目录而不是子目录,导致文件找不到或者PHP执行出错。你可以全局搜索旧站代码里的绝对路径,改成相对路径(比如./includes/config.php),或者动态获取当前子目录的路径。检查.htaccess配置
如果你的站点用了.htaccess做URL重写,移到子目录后需要调整规则适配新路径。比如在ow目录下的.htaccess里添加一行:RewriteBase /ow/同时检查里面的RewriteRule规则,确保没有硬编码根目录的路径,避免重写逻辑出错导致页面空白。
确认主机子目录PHP执行权限
少数情况下,主机商可能限制了子目录的PHP脚本执行权限。不过你把站点移回根目录就正常,这个概率不高,但如果前面的方法都没用,可以联系主机客服确认ow目录是否允许运行PHP。
内容的提问来源于stack exchange,提问作者Sam57

