Ubuntu 20.04.6 LTS部署Contao 3.4.50网站时首页正常但其他页面报404错误求助
看起来你遇到的是Contao部署中常见的URL重写配置问题,首页能正常加载说明数据库连接、基础文件结构都没问题,但其他页面报404,大概率是Apache没有正确处理Contao的友好URL重写规则,下面是几个针对性的排查和解决步骤:
确保Apache的mod_rewrite模块已启用
Contao的友好URL完全依赖mod_rewrite模块,先检查并启用它:sudo a2enmod rewrite sudo systemctl restart apache2修改虚拟主机配置,允许.htaccess生效
你的虚拟主机配置里缺少目录权限设置,导致根目录下的.htaccess规则被Apache忽略。打开/etc/apache/sites-available/website-archive.conf,在DocumentRoot行之后添加以下内容:<Directory /var/www/website-archive/sic-22-06-2023/> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>保存配置后先验证语法合法性:
sudo apache2ctl configtest如果输出
Syntax OK,就重启Apache使配置生效:sudo systemctl restart apache2验证.htaccess的重写规则正确性
确认根目录下的.htaccess包含Contao 3.4.x的标准重写规则,默认内容应该类似这样:RewriteEngine On RewriteBase / # 跳过实际存在的文件和目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将所有请求转发到index.php处理 RewriteRule ^(.*)$ index.php/$1 [L,QSA]如果你的
.htaccess内容缺失或异常,可以替换为Contao 3.4官方版本的默认规则。优化虚拟主机域名访问(可选但推荐)
你配置了ServerName website-archive,但目前用localhost访问可能导致URL解析异常。可以修改/etc/hosts文件,添加一行:127.0.0.1 website-archive之后用
http://website-archive访问网站,这样更符合虚拟主机的配置逻辑,也能避免一些路径解析问题。
完成这些步骤后,应该就能正常访问其他页面了。如果还是有问题,可以再次查看Apache的错误日志,排查是否有新的提示信息。
备注:内容来源于stack exchange,提问作者Mesarich




