Unable to host files in pub folder

I need to serve unpacked iso files for Arch Linux PXE installation. I do not know how to use some other web server for this inside Foreman, so I followed few tutorials where it said it can be accessed via http on the foreman server, if put in /var/www/html/pub/archlinux. I have tried putting files in /usr/share/foreman/public too.

Expected outcome:
Provided files should be accessible when PXE booting a new system.

Foreman and Proxy versions:
Foreman 3.7
Foreman Puppet 5.1.2

Distribution and version:
Ubuntu 20

Other relevant data:
I used this tutorial to create PXE boot for Arch Linux and have replaced the relevant urls. I have tried serving files on a different server, but it did not work (boot menu shows up with listed options for Arch install, but nothing happens when I click on it, like there are no relevant files).

> <%#
> kind: PXELinux
> name: Arch Linux default PXELinux
> model: ProvisioningTemplate
> oses:
> - Archlinux
> description: |
>   The template to render PXELinux bootloader configuration for Arch Linux.
>   The output is deployed on the host's subnet TFTP proxy.
> test_on:
> - host4dhcp
> - host6dhcp
> - host4and6dhcp
> - host4static
> - host6static
> -%>
> # This file was deployed via '<%= template_name %>' template
> <%
>   timeout = host_param('loader_timeout').to_i * 10
>   timeout = 100 if timeout.nil? || timeout <= 0
>   arch_iso_url    = foreman_server_url.gsub('https', 'http') + '/pub/archlinux/'
>   arch_iso_kernel = arch_iso_url + 'arch/boot/x86_64/vmlinuz-linux'
>   arch_iso_initrd = arch_iso_url + 'arch/boot/x86_64/initramfs-linux.img'
> -%>
> DEFAULT menu
> MENU TITLE Foreman Arch Linux
> TIMEOUT <%= timeout %>
> ONTIMEOUT archlinux
> LABEL archlinux
>     MENU LABEL Arch Linux
>     LINUX
>     INITRD
>     APPEND archisobasedir=arch archiso_http_srv= cms_verify=y ip=::: script=
>     IPAPPEND 2
>     Arch Linux - Autoprovision
> LABEL archlinux_no_script
>     MENU LABEL Arch Linux - No Script
>     LINUX <%= arch_iso_kernel %>
>     INITRD <%= arch_iso_initrd %>
>     APPEND archisobasedir=arch archiso_http_srv=<%= arch_iso_url %> cms_verify=y ip=:::
>     IPAPPEND 2
>     Arch Linux - Simply the Arch Linux live iso

I noticed with 3.6+ that /var/www/html/pub works still (which is actually /pub url), but /usr/share/foreman/public which is (/ on foreman url) is not possible to use anymore.

when i go to it says 404 not found. same if i enter for example. i created a dummy file arch.img under /pub/archlinux. or also nothing.

I think existence of /pub depends on the installation. Foreman it is not existing, only with Katello as /pub provides already certificates and similar. I remember I created an issue for this and was told there are plans to rework this.

anyone knows how to maybe add folder exposed to http to existing apache2 foreman configuration?

I do not have an example ready to use, but you will need to look into custom hiera, to configure it or to keep your manual configuration.

Yes, that makes sense, yes /pub probably only exists if Katello is installed, because that directory is where the clients download their smartproxy certs for subscription-manager from.