Apache2 HTTPS根目录自动重定向至/blog问题排查求助
以下是几个可能的原因及对应的排查/解决步骤:
浏览器缓存残留
之前的WordPress部署可能触发了301永久重定向,这类重定向会被浏览器持久缓存。可以通过以下方式验证:- 使用浏览器隐私/无痕模式访问
https://www.example.com - 在终端执行命令查看服务器实际响应:
如果响应头中没有curl -v https://www.example.comLocation: /blog,说明是浏览器缓存问题,清除对应域名的缓存即可。
- 使用浏览器隐私/无痕模式访问
/var/www/html下的.htaccess文件残留规则
WordPress会自动生成.htaccess文件并写入重定向规则,即使删除了blog目录,根目录下的.htaccess可能还残留跳转配置。检查该文件:cat /var/www/html/.htaccess如果发现包含
RewriteRule指向/blog的规则,直接删除该文件或注释掉相关规则,然后重启Apache2:sudo systemctl restart apache2Apache全局或其他站点配置遗漏
仅检查sites-enabled/default-ssl.conf可能不够,全面搜索Apache配置目录中含blog的内容:grep -r "blog" /etc/apache2/ --include="*.conf" --include="*.htaccess"重点查看
conf-enabled/、sites-available/下的其他配置文件,以及可能存在的全局重写规则。根目录下遗留WordPress文件
检查/var/www/html下是否存在WordPress的index.php文件(而非Apache默认的index.html):ls -l /var/www/html/如果
index.php存在且是之前WordPress的遗留文件,它可能会读取数据库中的站点URL配置,自动跳转到/blog。删除该文件,或确保Apache的DirectoryIndex指令优先解析index.html:
在default-ssl.conf的<VirtualHost>块中添加或修改:DirectoryIndex index.html index.php重启Apache2生效。
SSL站点的DirectoryIndex优先级问题
对比HTTP和HTTPS站点的DirectoryIndex设置,HTTP站点可能优先解析index.html,而HTTPS站点默认优先index.php。检查default-ssl.conf中是否有DirectoryIndex配置,确保index.html排在前面。
内容的提问来源于stack exchange,提问作者CLTECH

