Escape key {}

<VirtualHost *:80>
    ServerName {domaine avec sous domaine}
    Redirect permanent / {domain avec sous domaine}
</VirtualHost>

<VirtualHost *:443>
    ServerName {domaine avec sous domaine}

    DocumentRoot {Emplacelment du site}

    <Directory /var/www/winget-sever-ui/Winget-Serv-UI/dist>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted

        # Vue Router history mode — redirige tout vers index.html
        FallbackResource /index.html
    </Directory>

    # Logs
    ErrorLog ${APACHE_LOG_DIR}/script.cheapgriffy.fr.error.log
    CustomLog ${APACHE_LOG_DIR}/script.cheapgriffy.fr.access.log combined

    # SSL (à remplir par Certbot)
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/script.cheapgriffy.fr/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/script.cheapgriffy.fr/privkey.pem
</VirtualHost>

<VirtualHost *:80>
    ServerName {domaine avec sous domaine}
    Redirect permanent / {domain avec sous domaine}
</VirtualHost>

Redirection vers HTTPS

Classique explicite pas besoin d’explication