Debian10 Docker部署LAMP后Apache2 URL Rewrite功能失效求助
问题排查与修复步骤
第一步:启用站点目录的.htaccess读取权限
你当前的站点配置仅配置了DocumentRoot,大概率未添加<Directory>块开放.htaccess读取权限,编辑/etc/apache2/sites-available/000-default.conf,在DocumentRoot /var/www/html下方添加以下配置块:<Directory /var/www/html> Options +FollowSymlinks AllowOverride All Require all granted </Directory>其中
AllowOverride All是允许当前目录下的.htaccess文件覆盖默认配置的核心指令,Apache默认值为None,即完全忽略.htaccess文件,这是你遇到问题的最常见原因。第二步:验证.htaccess文件权限
确保Apache运行用户(默认是www-data)拥有.htaccess的读取权限,执行以下命令修正权限:chmod 644 /var/www/html/.htaccess chown www-data:www-data /var/www/html/.htaccess第三步:重启Apache服务生效配置
执行以下命令重启服务:systemctl restart apache2可选验证步骤:确认.htaccess是否被正常读取
可以临时在.htaccess文件首行添加一行非法配置(比如直接输入TestInvalidConfig),访问站点如果返回500错误,说明.htaccess已被正常读取,删除该行即可;如果依旧返回404,说明配置未生效,可回到第一步检查<Directory>块的路径是否和实际站点根目录完全一致。
可选优化方案:如果不需要动态修改重写规则,可以直接把你的重写规则直接写到
<Directory /var/www/html>配置块中,无需依赖.htaccess,运行性能更高,也能避免权限配置问题。
内容的提问来源于stack exchange,提问作者moDevsome
相关产品推荐
相关产品推荐

