Because this is not the intended use case for snap. Snap is intended to compartmentalize the software and make it as simple for you as possible. A natural consequence of that is inflexibility.
Bottom line is to do what you’re asking, you would be best served by either
- Installing a normal Apache instance via apt, having it reverse proxy the Nextcloud instance and serve your other site, or
- Ditching snap altogether and using a normal Apache installation for both.
I would say neither option is particularly difficult, and #1 would probably suit you just fine. You wouldn’t have to start over or anything. Here’s how that would go if you want to try it.
First you’ll need to change the port numbers for the snap Apache. I would change 80 and 443 to 8080 and 8443 respectively.
Then you will need to install Apache via apt and enable some mods.
sudo apt install apache2
sudo a2enmod ssl proxy proxy_http proxy_wstunnel rewrite headers
sudo systemctl restart apache2
You can use the default site if you like for your web root. Then you’ll add a vhost config under /etc/apache2/sites-available with something like this:
Adjust as needed to fit your setup. At a minimum you’ll need to change your ServerName to the subdomain you want it to use.
Enable the site:
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
Install and enable certbot:
Somewhere during this process you’ll probably have to change some of the proxy related settings in Nextcloud. Details here: