You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 20.04.6 LTS部署Contao 3.4.50网站时首页正常但其他页面报404错误求助

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

火山引擎 最新活动