example123.ca/a/返回404无法加载目录内index.html问题咨询
问题原因
- 根目录
.htaccess的重定向规则逻辑冲突、顺序错误:去WWW前缀的规则最终重定向目标是HTTP协议,导致请求在HTTPS和HTTP之间反复跳转。而子目录/a开启了Basic身份认证,多次跳转过程中身份认证头会丢失,最终触发404错误。 - 规则执行顺序不合理:现有配置先强制HTTPS,再处理WWW前缀移除,会额外增加一次无效重定向,加剧跳转冲突。
- 小概率为
/a目录下的配置问题:包括AuthUserFile指向的密码文件路径错误、密码文件无读取权限、/a目录下的index.html文件权限不足或文件不存在。
修复方案
1. 修正根目录.htaccess配置
合并重复配置,调整规则顺序,所有重定向直接指向HTTPS,避免协议来回跳转:
RewriteEngine On # 先移除WWW前缀,直接跳转到HTTPS RewriteCond %{HTTP_HOST} ^www\.(.+)$ RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R=301] # 再强制HTTPS RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
修改后清空浏览器缓存再测试访问即可。
2. 校验/a目录配置
- 确认
/home/a4af6ec6cl5p/.htpasswds/public_html/a/passwd文件真实存在,且Apache运行用户有读取权限 - 确认
/a目录下存在index.html文件,文件权限设置为644,目录权限设置为755
内容的提问来源于stack exchange,提问作者frank m
相关产品推荐
相关产品推荐

