You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS下Apache部署Angular4项目路由404问题求助

解决CentOS Apache部署Angular4路由刷新404问题

我之前在CentOS上部署Angular路由应用时也碰到过完全一样的问题,给你几个实用的排查和修复步骤,应该能解决:

1. 确认Apache Rewrite模块已启用

CentOS默认的Apache可能没开启rewrite模块,这是路由重写的核心,先检查:

httpd -M | grep rewrite

如果输出里没有rewrite_module (shared),就需要启用它:

  • 编辑/etc/httpd/conf.modules.d/00-base.conf,找到#LoadModule rewrite_module modules/mod_rewrite.so这一行,去掉前面的#注释
  • 重启Apache服务:
sudo systemctl restart httpd

再次执行检查命令,确认模块已加载。

2. 修正.htaccess规则和权限

你的.htaccess规则可能在CentOS的Apache环境下路径解析有问题,建议替换成更可靠的版本,放在/var/www/html目录下:

RewriteEngine On
# 仅当请求的文件或目录不存在时,重定向到index.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [L]

同时确保文件权限正确,让Apache能读取:

sudo chmod 644 /var/www/html/.htaccess
sudo chown apache:apache /var/www/html/.htaccess

3. 验证httpd.conf配置是否生效

你的/etc/httpd/conf/httpd.conf里的配置看起来没问题,但要确保没有其他配置块覆盖它:

  • 执行配置检查,确保没有语法错误:
sudo apachectl configtest

如果输出Syntax OK,就重启Apache让配置生效:

sudo systemctl restart httpd

如果有错误,根据提示修复对应配置项。

4. 排查日志找具体原因

如果以上步骤都做完还是404,查看Apache的错误日志,里面会有明确的问题提示:

sudo tail -f /var/log/httpd/error_log

比如会显示rewrite模块未加载、.htaccess被忽略(比如AllowOverride没开)等具体信息,根据日志再针对性修复。

最后:清除浏览器缓存

有时候浏览器的旧缓存会导致路由异常,建议打开隐私模式或者清除缓存后再测试路由访问。

内容的提问来源于stack exchange,提问作者edit2112

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:09:35